Je lisais la page de manuel de gdb et je suis tombé sur la ligne:
You can use GDB to debug programs written in C, C@t{++}, Fortran and Modula-2.
Le C @ t {++} ressemble à une expression régulière mais je n'arrive pas à le décoder.
Qu'est-ce que ça veut dire?
man
documentation
gdb
sam
la source
la source
++
façonC\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
Réponses:
GNU déteste les pages de manuel, donc elles écrivent généralement de la documentation dans un autre format et en génèrent une, sans vraiment se soucier si le résultat est utilisable.
C@t{++}
est un balisage texinfo qui n'a pas été traduit. Il n'était pas destiné à faire partie de la documentation visible par l'utilisateur. Il devrait simplement direC++
(éventuellement avec une police spéciale pour le++
rendre joli).la source
La séquence
@t{...}
est le balisage texinfo pour composer une séquence à l'aide d'une police à largeur fixe (voir la section Polices du manuel texinfo pour plus de détails et quelques exemples.)Il semble qu'ils essayaient d'écrire "C ++" et que le "++" utilise une police à largeur fixe (comme "
++
".) Peut-être que quelqu'un a trouvé de meilleurs résultats avec des polices spécifiques lors du rendu de la documentation en PostScript ou PDF ou dans un format qui utilise des polices à largeur variable par défaut.La raison pour laquelle cela ne semble pas fonctionner et que vous voyez la séquence non traitée est que texinfo est utilisé par le
info
système de documentation, alors qu'ilman
utilise nroff qui est un langage différent avec des commandes différentes (par exemple, la commande pour passer à une constante largeur de police dans nroff est\f(CW
), il n'a donc bien sûr pas reconnu la@t{...}
séquence inchangée.Ce problème semble avoir été introduit dans un commit d'avril 2013 où les pages de manuel ont été converties en texinfo et ce balisage spécifique a été introduit. Il semble que le script maintenant utilisé pour générer les pages de manuel (
texi2man.pl
) ne reconnaisse pas ou ne convertisse pas correctement cette séquence.la source
pod2man
fournit une macro roff pour "un C ++ plus agréable" qui n'est pas utilisé parce que son code de reconnaissance entre en jeu pour la chaîne "C ++".C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
expansion de troff d'un labbie à Murray Hill pendant l'évangélisation initiale du langage C ++ lorsque nous composions les procédures USENIX pour ces premiers événements C ++. Les labbies étaient assez sérieux au sujet de leur troff. :)