Що означає C @ t {++} на сторінці gdb man?


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'
tchrist

Відповіді:


28

GNU ненавидить підручні сторінки, тому вони зазвичай пишуть документацію в іншому форматі і генерують із цього підручник, не дбаючи про те, чи результат корисний.

C@t{++}це деяка розмітка текстової інформації, яку не було перекладено. Це не передбачалося бути частиною видимої для користувача документації. Слід просто сказати C++(можливо, якимсь спеціальним шрифтом для того, ++щоб він виглядав приємно).


8
У цьому випадку це було саме зворотне. Доко спочатку був написаний у роффі у 1980-х роках, і роф (погано) був перетворений на текстову інформацію у 2013 році.
JdeBP

6
Чи можемо ми отримати цитування думок у першому реченні?
тосфор


3
@Kusalananda Дякую за посилання / інформацію. Це джерело не підтримує думку у відповіді.
тосфор

2
@thosphor "ненависть" - це трохи перебільшення, але зрозуміло, що RMS та FSF не вважають це бажаним форматом.
Бармар

18

Послідовність @t{...}- це розмітка texinfo для набору послідовності, використовуючи шрифт фіксованої ширини ( детальніше та деякі приклади див. У розділі Шрифти в посібнику texinfo.)

Схоже, що вони намагалися написати "C ++" і мають "++" використовувати шрифт фіксованої ширини (наприклад, " ++".) Можливо, хтось виявив, що дає кращі результати з певними шрифтами під час надання документації в PostScript або PDF або якийсь формат, який використовує шрифти змінної ширини за замовчуванням.

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

Здається, ця проблема була внесена в комісію з квітня 2013 року, коли довідкові сторінки були перетворені на texinfo та була введена конкретна розмітка. Здається, сценарій, який зараз використовується для створення довідкових сторінок ( 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'розширення трофів з лабораторії на пагорбі Мюррей під час початкового євангелізму мови С ++, коли ми набирали розробки USENIX для цих ранніх подій C ++. Лабораторії досить серйозно ставилися до свого трофа. :)
tchrist
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.