On 31/08/17 21:54, Bjarni Ingi Gislason wrote:
Introduction:

A) There are about 1400 lines in the code in the "groff" repository that
contains the backquote, grave (`) as a directional quote, but it is output
exactly as itself, as it is not processed as an input to "groff" to be
formatted and typeset.

Example:

an-old.tmac:.    tm `R' is a string (producing the registered sign), not a 
macro.

As a general point, if ` and ' are used as single quotes in C++ sources, you can actually use ‘ and ’ and tell the compiler that the input is UTF-8. It's been the default for GCC for over a decade; even the recent-ish Microsoft compilers support it.

The C++11 language standard also introduces a u8"" string literal type. It's a UTF-8 string literal. There are also u and U literals for UTF-16 and UTF-32, respectively, if you want to have characters and strings in various explicit wide representations without the ambiguity of L wchar_t. If it's not already, having groff be unicode-clean from end to end would be greatly desirable, and these aid portable use of unicode characters directly in the program input.

While groff predates standard C++, and restricts itself to C for the most part, it has a lot of esoteric stuff relating to memory management which could for the most part be replaced by standard containers and smartpointers. It would be a bit slower to compile, but make the source base much more accessible; I found it difficult 15 years ago.


Regards,
Roger

Reply via email to