Hi Bjarni, Bjarni Ingi Gislason wrote on Fri, Nov 08, 2013 at 10:01:15PM +0000:
> Groff Bug Report > > GROFF VERSION: 1.22.2 > 'current-groff' from 12th October 2013 > > MACHINE: laptop i586 > > OS: Linux 3.2.46-1-rt67-1 (Debian) > > COMPILER: gcc (Debian 4.7.2-5) 4.7.2 > > INPUT FILES: > > \(em, > \[u2014], and > \C'u2014' > > COMMAND LINE: > > groff -b -ww -Z <input file> > > DESCRIPTION OF INCORRECT BEHAVIOUR OR DEFECTS IN (INPUT) SOURCE: > > Character name \[u2014] is an em-dash but the variant \C'u2014' is > not defined. I admit that you reported that bug against groff, but i just fixed it in mandoc which happened to mishandle \C'u2014' as well. Of course, the fix in groff remains to be done. Thanks for reporting, Ingo -- Ingo Schwarze <[email protected]> http://mdocml.bsd.lv/ ----- 8< ----- schnipp ----- >8 ----- 8< ----- schnapp ----- >8 ----- Date: Sun, 10 Nov 2013 13:17:14 -0700 (MST) From: Ingo Schwarze <[email protected]> Message-Id: <[email protected]> To: [email protected] Subject: CVS: cvs.openbsd.org: src CVSROOT: /cvs Module name: src Changes by: [email protected] 2013/11/10 13:17:14 Modified files: share/man/man7 : mandoc_char.7 usr.bin/mandoc : mandoc.c regress/usr.bin/mandoc/char/unicode: man.in man.out_utf8 mdoc.in mdoc.out_utf8 Log message: Support the alternative syntax \C'uXXXX' for Unicode characters. It is already documented in the Heirloom troff manual, and groff handles it as well. Bug reported by Bjarni Ingi Gislason <bjarniig at rhi dot hi dot is> on <bug-groff at gnu dot org>. Well, admittedly, that bug was reported against groff, but mandoc was even more broken than groff with respect to this syntax... Index: mandoc.c =================================================================== RCS file: /cvs/src/usr.bin/mandoc/mandoc.c,v retrieving revision 1.38 diff -u -p -r1.38 mandoc.c --- mandoc.c 5 Oct 2013 21:17:29 -0000 1.38 +++ mandoc.c 10 Nov 2013 20:06:53 -0000 @@ -89,8 +89,11 @@ mandoc_escape(const char const **end, co case ('C'): if ('\'' != **start) return(ESCAPE_ERROR); - gly = ESCAPE_SPECIAL; *start = ++*end; + if ('u' == (*start)[0] && '\'' != (*start)[1]) + gly = ESCAPE_UNICODE; + else + gly = ESCAPE_SPECIAL; term = '\''; break; _______________________________________________ bug-groff mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-groff
