Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * Convert troff -ms input to HTML.
 */

#include "a.h"

Biobuf  bout;
char*   tmacdir;
int             verbose;
int             utf8 = 0;

void
usage(void)
{
        fprint(2, "usage: htmlroff [-iuv] [-m mac] [-r an] [file...]\n");
        exits("usage");
}

void
main(int argc, char **argv)
{
        int i, dostdin;
        char *p;
        Rune *r;
        Rune buf[2];
        
        Binit(&bout, 1, OWRITE);
        fmtinstall('L', linefmt);
        quotefmtinstall();
        
        tmacdir = "/sys/lib/tmac";
        dostdin = 0;
        ARGBEGIN{
        case 'i':
                dostdin = 1;
                break;
        case 'm':
                r = erunesmprint("%s/tmac.%s", tmacdir, EARGF(usage()));
                if(queueinputfile(r) < 0)
                        fprint(2, "%S: %r\n", r);
                break;
        case 'r':
                p = EARGF(usage());
                p += chartorune(buf, p);
                buf[1] = 0;
                _nr(buf, erunesmprint("%s", p+1));
                break;
        case 'u':
                utf8 = 1;
                break;
        case 'v':
                verbose = 1;
                break;
        default:
                usage();
        }ARGEND

        for(i=0; i<argc; i++){
                if(strcmp(argv[i], "-") == 0)
                        queuestdin();
                else
                        queueinputfile(erunesmprint("%s", argv[i]));
        }
        if(argc == 0 || dostdin)
                queuestdin();
        
        run();
        Bprint(&bout, "\n");
        Bterm(&bout);
        exits(nil);
}