gdb手册页中的C @ t {++}是什么意思?


16

我正在阅读gdb的联机帮助页,但遇到了问题:

You can use GDB to debug programs written in C, C@t{++}, Fortran and Modula-2.

C @ t {++}看起来像一个正则表达式,但我似乎无法对其进行解码。

这是什么意思?


哪个版本?看起来像C ++,只是他们++以某种方式使用了特殊的编码
thrig

@thrig我可以在Ubuntu 16.04,gdb 7.11.1-0ubuntu1〜16.5中确认这一点。
Melebius

是什么让这看起来像正则表达式?
基金莫妮卡的诉讼

FWIW,那将是无效的正则表达式。
与莫妮卡(Monica)进行的轻度比赛

显然他们忘记了写作C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
tchrist

Answers:


28

GNU讨厌手册页,因此它们通常以另一种格式编写文档并从中生成手册页,而实际上并不关心结果是否可用。

C@t{++}是一些未翻译的texinfo标记。并不是要成为用户可见文档的一部分。它应该简单地说C++(可能使用一些特殊字体++使它看起来不错)。


8
在这种情况下,情况恰恰相反。 Doco最初是在1980年代用roff编写的, 2013
texinfo。– JdeBP

6
我们可以在第一句中引用一些观点吗?
thosphor


3
@Kusalananda感谢您的链接/信息。该消息来源不支持答案中的观点。
thosphor '18 -10-18

2
@thosphor“ hate”有点夸张,但是很明显RMS和​​FSF并不认为它是首选格式。
Barmar

18

该序列@t{...}是texinfo标记,用于使用固定宽度的字体排版序列(有关更多详细信息和示例,请参见texinfo手册的Fonts部分)。

看起来他们正在尝试编写“ C ++”,并让“ ++”使用固定宽度的字体(例如“ ++”。)也许有人发现,在以PostScript或PDF或某些格式的文档呈现时,使用特定字体会产生更好的结果。默认情况下使用可变宽度字体。

之所以似乎不起作用,并且您看到未处理的序列,是因为info文档系统使用了texinfo ,而man使用nroff却是另一种语言,具有不同的命令(例如,切换到常量的命令) nroff中的width字体是\f(CW),因此它当然不能识别@t{...}序列不变。

从2013年4月提交中似乎已经引入了此问题,该手册页已转换为texinfo并引入了特定的标记。现在用于生成手册页(texi2man.pl)的脚本似乎无法识别或正确转换该序列。



6
具有讽刺意味的是,pod2man它为“更好的C ++”提供了roff宏,该宏没有被使用,因为其识别代码仅针对字符串“ C ++”启动。
JdeBP '18年

2
@JdeBP您似乎在这里有答案,所以为什么不写一个?
管道

3
协作,管道。 答案注释用于建议对答案的改进。这里有一些改进。让我们看看这里的两个回答者是否希望将它们合并。如果他们愿意,我不想踩他们的脚。
JdeBP

3
@JdeBP感谢您的号召。我的回忆是,C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'当我们为那些早期的C ++事件排版USENIX程序时,我是在C ++语言的最初传福音期间从Murray Hill的实验室工作人员得到的 。实验室的人对他们的鳟鱼很认真。:)
tchrist
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.