Eu estava lendo a página de manual do gdb e me deparei com a linha:
You can use GDB to debug programs written in C, C@t{++}, Fortran and Modula-2.
O C@t{++} parece um regex, mas não consigo decodificá-lo.
O que isto significa?
Eu estava lendo a página de manual do gdb e me deparei com a linha:
You can use GDB to debug programs written in C, C@t{++}, Fortran and Modula-2.
O C@t{++} parece um regex, mas não consigo decodificá-lo.
O que isto significa?
O GNU odeia páginas de manual, então eles geralmente escrevem documentação em outro formato e geram uma página de manual a partir disso, sem realmente se importar se o resultado é utilizável.
C@t{++}
é alguma marcação texinfo que não foi traduzida. Não se destinava a fazer parte da documentação visível ao usuário. Deveria simplesmente dizerC++
(possivelmente com alguma fonte especial++
para torná-lo bonito).A sequência
@t{...}
é a marcação texinfo para compor uma sequência usando fonte de largura fixa (consulte a seção Fontes do manual texinfo para obter mais detalhes e alguns exemplos.)Parece que eles estavam tentando escrever "C++" e fazer com que o "++" usasse uma fonte de largura fixa (como "
++
"). usa fontes de largura variável por padrão.A razão pela qual isso não parece funcionar e você está vendo a sequência não processada é que texinfo é usado pelo
info
sistema de documentação, enquantoman
usa nroff que é uma linguagem diferente com comandos diferentes (por exemplo, o comando para alternar para uma constante largura da fonte em nroff is\f(CW
), então é claro que não reconheceu a@t{...}
sequência inalterada.Esse problema parece ter sido introduzido em um commit de abril de 2013, onde as páginas man foram convertidas em texinfo e essa marcação específica foi introduzida. Parece que o script agora usado para gerar as páginas de manual (
texi2man.pl
) não reconhece ou converte adequadamente essa sequência.