[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: \[u2014] defined but not the variant \C'u2014'
From: |
Ingo Schwarze |
Subject: |
Re: \[u2014] defined but not the variant \C'u2014' |
Date: |
Sun, 10 Nov 2013 21:28:26 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
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 <address@hidden>
http://mdocml.bsd.lv/
----- 8< ----- schnipp ----- >8 ----- 8< ----- schnapp ----- >8 -----
Date: Sun, 10 Nov 2013 13:17:14 -0700 (MST)
From: Ingo Schwarze <address@hidden>
Message-Id: <address@hidden>
To: address@hidden
Subject: CVS: cvs.openbsd.org: src
CVSROOT: /cvs
Module name: src
Changes by: address@hidden 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;