Estaba leyendo la página de manual de gdb y me encontré con la línea:
You can use GDB to debug programs written in C, C@t{++}, Fortran and Modula-2.
El C @ t {++} parece una expresión regular pero parece que no puedo decodificarlo.
Qué significa eso?
man
documentation
gdb
sam
fuente
fuente
++
alguna maneraC\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
Respuestas:
GNU odia las páginas man, por lo que generalmente escriben documentación en otro formato y generan una página man a partir de eso, sin importarles realmente si el resultado es utilizable.
C@t{++}
es un marcado de texinfo que no se tradujo. No pretendía ser parte de la documentación visible para el usuario. Simplemente debería decirC++
(posiblemente con alguna fuente especial para++
que se vea bien).fuente
La secuencia
@t{...}
es el marcado de texinfo para componer una secuencia usando una fuente de ancho fijo (vea la sección de Fuentes del manual de texinfo para más detalles y algunos ejemplos).Parece que estaban tratando de escribir "C ++" y que el "++" usara una fuente de ancho fijo (como "
++
".) Quizás alguien descubrió que produce mejores resultados con fuentes específicas al presentar documentación en PostScript o PDF o algún formato que usa fuentes de ancho variable por defecto.La razón por la que esto no parece funcionar y está viendo la secuencia no procesada es que texinfo es utilizado por el
info
sistema de documentación, mientras queman
usa nroff, que es un idioma diferente con diferentes comandos (por ejemplo, el comando para cambiar a una constante ancho de fuente en nroff es\f(CW
), por lo que, por supuesto, no reconoció la@t{...}
secuencia sin cambios.Este problema parece haberse introducido en una confirmación de abril de 2013, donde las páginas de manual se convirtieron a texinfo y se introdujo ese marcado específico. Parece que el script que ahora se usa para generar las páginas man (
texi2man.pl
) no reconoce o convierte esa secuencia correctamente.fuente
pod2man
proporciona una macro roff para "un C ++ más agradable" que no se utiliza porque su código de reconocimiento solo se activa para la cadena "C ++".C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
expansión troff de un laboratorio en Murray Hill durante el evangelismo inicial del lenguaje C ++ cuando estábamos componiendo procedimientos USENIX para esos primeros eventos de C ++. Los labbies se tomaban muy en serio su troff. :)