Что означает C @ t {++} на справочной странице GDB?


16

Я читал справочную страницу для GDB, и я наткнулся на строку:

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

C @ t {++} выглядит как регулярное выражение, но я не могу его расшифровать.

Что это означает?


для какой версии? выглядит как C ++ только они bodged специальную кодировку ++каким - то образом
thrig

@ thrig Я могу подтвердить это в Ubuntu 16.04, gdb 7.11.1-0ubuntu1 ~ 16.5.
Мелебиус

Что делает это похоже на регулярное выражение для вас?
Фонд Моника иск

FWIW, это было бы недопустимым регулярным выражением.
Легкость гонок с Моникой

Ясно, что они забыли, как писатьC\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
1918 года

Ответы:


28

GNU ненавидит man-страницы, поэтому они обычно пишут документацию в другом формате и генерируют man-страницу из этого, не заботясь о том, пригоден ли результат.

C@t{++}некоторая разметка texinfo, которая не была переведена. Это не было предназначено, чтобы быть частью видимой пользователем документации. Надо просто сказать C++(возможно, с каким-то специальным шрифтом, ++чтобы он выглядел красиво).


8
В этом случае все было с точностью до наоборот. Первоначально документ был написан в roff в 1980-х, а roff (плохо) был вручную преобразован в texinfo в 2013 году.
JdeBP

6
Можем ли мы получить цитату из мнений в первом предложении?
thosphor


3
@Kusalananda Спасибо за ссылку / информацию. Этот источник не поддерживает мнение в ответе.
thosphor

2
@thosphor "ненависть" - это немного преувеличение, но ясно, что RMS и FSF не считают это своим предпочтительным форматом.
Бармар

18

Последовательность @t{...}является Texinfo разметки верстать последовательность с использованием фиксированной ширины шрифта (см Шрифты секции Texinfo по эксплуатации для получения более подробной информации и некоторые примеры.)

Похоже, они пытались написать «C ++» и использовать «++» для шрифта фиксированной ширины (например, « ++».) Возможно, кто-то обнаружил, что дает лучшие результаты с конкретными шрифтами при отображении документации в PostScript или PDF или в каком-либо формате, который по умолчанию использует шрифты переменной ширины.

Причина, по которой это не работает, и вы видите необработанную последовательность, состоит в том, что texinfo используется системой infoдокументации, в то время как manиспользует nroff, который является другим языком с другими командами (например, команда для переключения на константу Ширина шрифта в nroff есть \f(CW), поэтому он, конечно, не распознал @t{...}последовательность без изменений.

Эта проблема, кажется, была введена в коммите с апреля 2013 года, когда man-страницы были преобразованы в texinfo, и была введена эта конкретная разметка. Похоже, что скрипт, который теперь используется для генерации man-страниц ( texi2man.pl), не распознает и не конвертирует эту последовательность должным образом.



6
Ирония в том, что pod2manпредоставляет макрос roff для «более приятного C ++» , который не используется, потому что его код распознавания включается только для строки «C ++».
JdeBP

2
@JdeBP У тебя, кажется, есть ответы здесь, так почему бы тебе не написать их?
труба

3
Сотрудничество, труба. Комментарии к ответу предназначены для улучшения ответов . Вот некоторые улучшения. Давайте посмотрим, хотят ли два ответчика здесь включить их. Я хочу не наступать им на ноги, если они это сделают.
JdeBP

3
@JdeBP Спасибо за звонок. Насколько я помню, я получил C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'расширение troff от labbie в Murray Hill во время первоначальной евангелизации языка C ++ еще тогда, когда мы набирали процедуры USENIX для тех ранних событий C ++. Лабби были довольно серьезны в отношении своего трона. :)
tchrist
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.