Apa yang dimaksud dengan C @ t {++} di halaman manual gdb?

16

Saya membaca halaman manual untuk gdb dan saya menemukan baris:

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

C @ t {++} terlihat seperti regex tapi sepertinya saya tidak bisa mendekodekannya.

Apa artinya?

sam
sumber
untuk versi apa? Sepertinya C ++ hanya mereka bertubuh pengkodean khusus ++entah bagaimana
thrig
@ thrig Saya dapat mengkonfirmasi ini di Ubuntu 16.04, gdb 7.11.1-0ubuntu1 ~ 16.5.
Melebius
Apa yang membuat ini terlihat seperti regex bagi Anda?
Dana Gugatan Monica
FWIW, itu akan menjadi regex yang tidak valid.
Lightness Races dengan Monica
Jelas mereka lupa cara menulisC\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
tchrist

Jawaban:

28

GNU membenci halaman manual, jadi mereka biasanya menulis dokumentasi dalam format lain dan menghasilkan halaman manual dari itu, tanpa benar-benar peduli jika hasilnya dapat digunakan.

C@t{++}adalah beberapa markup texinfo yang tidak diterjemahkan. Itu tidak dimaksudkan untuk menjadi bagian dari dokumentasi yang dapat dilihat pengguna. Seharusnya hanya mengatakan C++(mungkin dengan beberapa font khusus untuk ++membuatnya terlihat bagus).


sumber
8
Dalam hal ini, itu adalah kebalikannya. Doco awalnya ditulis dalam roff pada 1980-an dan roff (buruk) dikonversi menjadi texinfo pada 2013.
JdeBP
6
Bisakah kita mendapatkan kutipan untuk pendapat dalam kalimat pertama?
thorfor
4
@thosphor Lihat misalnya unix.stackexchange.com/questions/77514/what-is-gnu-info-for
Kusalananda
3
@ Kusalananda Terima kasih atas tautan / info. Sumber itu tidak mendukung pendapat dalam jawaban.
thorfor
2
@ Fosfor "benci" sedikit berlebihan, tetapi jelas bahwa RMS dan FSF tidak menganggapnya sebagai format yang mereka sukai.
Barmar
18

Urutannya @t{...}adalah texinfo markup untuk mengeset urutan menggunakan font tetap-lebar (lihat bagian Font dari manual texinfo untuk detail lebih lanjut dan beberapa contoh.)

Sepertinya mereka mencoba untuk menulis "C ++" dan memiliki "++" menggunakan font dengan lebar tetap (seperti " ++".) Mungkin seseorang menemukan bahwa menghasilkan hasil yang lebih baik dengan font tertentu saat merender dokumentasi dalam PostScript atau PDF atau beberapa format yang menggunakan font dengan lebar variabel secara default.

Alasan mengapa ini tampaknya tidak berhasil dan Anda melihat urutan yang tidak diproses adalah bahwa texinfo digunakan oleh infosistem dokumentasi, sementara manmenggunakan nroff yang merupakan bahasa yang berbeda dengan perintah yang berbeda (misalnya, perintah untuk beralih ke konstanta font lebar di nroff adalah \f(CW), jadi tentu saja tidak mengenali @t{...}urutan tidak berubah.

Masalah ini tampaknya telah diperkenalkan dalam komitmen sejak April 2013 di mana halaman manual dikonversi ke texinfo dan bahwa markup spesifik diperkenalkan. Tampaknya skrip yang sekarang digunakan untuk menghasilkan halaman manual ( texi2man.pl) tidak mengenali atau mengonversi urutan itu dengan benar.

filbranden
sumber
4
Jan Kratochvil dari RedHat mengonversi manual roff asli ke texinfo pada April 2013 dan memperkenalkan markup ini pada saat itu.
JdeBP
6
Ironisnya adalah bahwa pod2manmenyediakan makro roff untuk "a lebih bagus C ++" yang tidak digunakan karena kode pengenalannya hanya cocok untuk string "C ++".
JdeBP
2
@ JdeBP Anda sepertinya punya jawaban di sini, jadi mengapa Anda tidak menulisnya?
pipa
3
Kolaborasi, pipa. Jawaban komentar adalah untuk menyarankan peningkatan jawaban . Berikut ini beberapa perbaikan. Mari kita lihat apakah kedua penjawab di sini ingin menggabungkan mereka. Saya ingin tidak menginjak kaki mereka jika mereka melakukannya.
JdeBP
3
@JdeBP Terima kasih atas info. Ingatan saya adalah bahwa saya mendapatkan C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'ekspansi troff dari seorang labbie di Murray Hill selama penginjilan awal bahasa C ++ ketika kami sedang menyusun proses USENIX untuk acara C ++ awal itu. Laboratorium itu cukup serius tentang truf mereka. :)
tchrist