bug-groff
[Top][All Lists]
Advanced

[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;
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]