Mail Archives: cygwin/2010/04/08/09:32:00
Andy Koppe schrieb:
>> moo.tinys wrote:
>>
>>> using mintty
>>> LANG=zh_CN.UTF-8 mintty
>>> inside mintty:
>>> $ man man
>>> /-
>>> Pattern not found (press RETURN)
>>>
> With UTF-8, hyphen/minus symbols in the man page are displays as the
> Unicode codepoints for hyphen or minus. These are different from ASCII
> '-', which is why your search didn't turn up anything.
>
> This isn't mintty-specific.
>
> Thomas Wolff:
>
>> This was discussed here before but I'm not sure whether a solution was
>> already outlined.
>> The problem appeared on Linux too, some years ago, but has been fixed
>> meanwhile.
>> Differences are:
>> man calls nroff -mandoc on cygwin, nroff -mandocdb on Linux. The latter
>> macro package of groff includes the following which is prepended to the
>> manual page before feeding it to nroff for formatting:
>> .if '\*[.T]'utf8' \{\
>> . char \- \N'45'
>> . char - \N'45'
>> . char ' \N'39'
>> . char ` \N'96'
>> .\}
>>
>
> Thanks, glad to hear there is a fix. I'll use this in the mintty
> manpage, so at least searching will work there.
>
> Question: what's the *[.T] pattern matched against?
>
I guess the -Tutf8 parameter also showed by procps (with some luck while
invoking man...):
troff -mtty-char -mandoc -Tutf8
groff -mtty-char -Tutf8 -P-c -mandoc
I have no idea why both groff and troff appear in the process list or
how the -Tutf8 parameter is set there.
>> Checking the program chain of 'man' with procps, some other macros are added
>> already (simply using 'echo'), that's where it could also be added without a
>> complete new macro package (i.e. without changing groff). However, the
>> auxiliary roff codes are apparently hard-coded in man.exe so that'll have to
>> be changed.
>>
> What are those auxiliary roff codes?
>
I mean those being echoed into the nroff pipe as revealed by 'procps
xww' while running man:
sh -c (cd "/usr/share/man" && (echo ".pl 1100i"; /usr/bin/gunzip -c
'/usr/share/man/man1/mintty.1.gz'; echo ".\\\""; echo ".pl \n(nlu+10") |
/usr/bin/tbl | /usr/bin/nroff -c -mandoc 2>/dev/null | /usr/bin/less -isrR)
I guess the additional lines as quoted above can simply be added by a
few strcat calls inserted before line 572 of man.c.
I couldn't test, though, because the man source package needs some
interactive configuration before make works.
------
Thomas
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -