¿Qué significa C @ t {++} en la página de manual de gdb?

16

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?

sam
fuente
para cual versión? miradas como C ++ sólo ellos bodged la codificación especial de ++alguna manera
thrig
@thrig Puedo confirmar esto en Ubuntu 16.04, gdb 7.11.1-0ubuntu1 ~ 16.5.
Melebius
¿Qué hace que esto te parezca una expresión regular?
Financia la demanda de Mónica el
FWIW, eso sería una expresión regular no válida.
Lightness compite con Monica el
Claramente se olvidaron de cómo escribirC\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
tchrist

Respuestas:

28

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 decir C++(posiblemente con alguna fuente especial para ++que se vea bien).


fuente
8
En este caso, fue exactamente lo contrario. El doco fue escrito originalmente en roff en la década de 1980 y el roff (mal) convertido a mano en texinfo en 2013.
JdeBP
66
¿Podemos obtener alguna cita para las opiniones en la primera oración?
Thosphor
44
@thosphor Véase, por ejemplo, unix.stackexchange.com/questions/77514/what-is-gnu-info-for
Kusalananda
3
@ Kusalananda Gracias por el enlace / información. Sin embargo, esa fuente no respalda la opinión en la respuesta.
Thosphor
2
@thosphor "hate" es un poco exagerado, pero está claro que RMS y FSF no lo consideran su formato preferido.
Barmar
18

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 infosistema de documentación, mientras que manusa 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.

filbranden
fuente
66
La ironía es que pod2manproporciona 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 ++".
JdeBP
2
@JdeBP Parece que tienes las respuestas aquí, ¿por qué no escribes una?
tubería
3
Colaboración, tubería. Los comentarios de respuesta son para sugerir mejoras a las respuestas . Aquí hay algunas mejoras. Veamos si los dos respondedores aquí desean incorporarlos. No quiero pisarles los pies si lo hacen.
JdeBP
3
@JdeBP Gracias por la llamada. Recuerdo que obtuve la 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. :)
tchrist