Subject: Re: Bug Report: man2html stackdumps when fed groff_tmac(5), groff(7), and roff(7) manpages.
From: "Gerrit P. Haase" <[email-masked]>
To: [email-masked]
Date: Sun, 12 Aug 2001 21:22:13 +0200

Michael Hoffman schrieb am 2001-08-12, 12:55:

>On Sun, 12 Aug 2001, Max Bowsher wrote:
>
>> man2html segfaults and stackdumps when fed groff_tmac(5), groff(7), and
>> roff(7) manpages.
>> 
>> Please could someone with access to a linux machine test whether this cygwin
>> specific or not.
>> 
>> Please could other cygwin-users check whether is is just me or not.
>
>Yes, I reproduce this problem on CYGWIN_NT-5.0 1.3.2. In each case I
>get a stackdump whenever man2html gets to a line starting with:
>
>.'char

$ bman groff.7
      0 [main] man2html 439 open_stackdumpfile: Dumping stack trace to man2html.exe.stackdump
/bin/bman: line 56:   502 Done                    zcat $manfile
       439 Segmentation fault      (core dumped) | man2html >$tmpfile

$ bman 7 roff
      0 [main] man2html 388 open_stackdumpfile: Dumping stack trace to man2html.exe.stackdump
/bin/bman: line 56:   433 Done                    zcat $manfile
       388 Segmentation fault      (core dumped) | man2html >$tmpfile

Yep, for me, too:
CYGWIN_NT-4.0 1.3.2(0.39/3/2) 2001-05-20 23:28 i686 unknown

But i use this script (bman) which makes an output to InternetExplorer,
i get the stackdump, but i also get the output to the browser.
Default usage see above commands.

BMAN:
=====
#!/bin/bash

if [[ -z $MANPATH ]]; then
    manpath="/usr/local/man /usr/man"
else
    manpath=${MANPATH//:/ }
fi

startcmd="`cygpath -u -S`/cmd /c start"

if [[ $# -gt 2 || $# -eq 0 ]]; then
    echo
    echo Usage: `basename $0` [section] topic
    echo
    exit 2
elif [[ $# -eq 2 ]]; then
    section=$1
    topic=$2
elif [[ $# -eq 1 ]]; then
    section='?'
    topic=$1
fi

tmpfile=/usr/doc/Manpages/$topic.html
rm -f $tmpfile

manfile=
for m in $manpath; do
    for d in $m/man$section; do
        if [[ -d $d ]]; then
            for f in [[ $d/$topic.* ]]; do
                if [[ -f $f ]]; then
                    manfile=$f
                    break 3
                fi
            done
        fi
    done
done

if [[ -z $manfile ]]; then
    echo
    echo `basename $0`: no man page found for $topic
    echo
    exit 1
else
    if [[ $manfile == *gz ]]; then
        zcat $manfile | man2html > $tmpfile
    elif [[ $manfile == *bz2 ]]; then
        bzcat $manfile | man2html > $tmpfile
    else
        man2html $manfile > $tmpfile
    fi
    chmod +x $tmpfile
    $startcmd `cygpath -w $tmpfile`
fi
#====
#END:

With this script you will have the HTML-Output in /usr/doc/Manpages 
which needs to be created if it does not exist. You may also change
the drive in the script pointing to another location.

gph

-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/