From df4c0b0f7b27b31010eaf82bacec32831a020e76 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 15 Sep 2014 15:56:25 -0700 Subject: Implement \n[.$] variable properly. Make .$ correspond to the number of arguments in the macro call. --- man2html/defs.h | 2 +- man2html/man2html.c | 2 +- man2html/strdefs.c | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/man2html/defs.h b/man2html/defs.h index bfd56a4..b108429 100644 --- a/man2html/defs.h +++ b/man2html/defs.h @@ -17,7 +17,7 @@ struct INTDEF { }; extern STRDEF *chardef, *strdef, *defdef; -extern INTDEF *intdef; +extern INTDEF *intdef, *nargdef; #define V(A,B) ((A)*256+(B)) #define V4(A,B,C,D) ((((((((A)*256)+(B))*256)+(C))*256)+(D))) diff --git a/man2html/man2html.c b/man2html/man2html.c index 7e78446..94b3738 100644 --- a/man2html/man2html.c +++ b/man2html/man2html.c @@ -52,7 +52,7 @@ static char *scan_troff(char *c, int san, char **result); static char *scan_troff_mandoc(char *c, int san, char **result); static char **argument=NULL; -int nargs; +#define nargs (nargdef->val) static char charb[5]; diff --git a/man2html/strdefs.c b/man2html/strdefs.c index e97bcab..03f4012 100644 --- a/man2html/strdefs.c +++ b/man2html/strdefs.c @@ -1,3 +1,4 @@ +#include #include "defs.h" #ifndef NULL @@ -10,7 +11,7 @@ int nroff = 1; #define TROFF (-667) STRDEF *chardef, *strdef, *defdef; -INTDEF *intdef; +INTDEF *intdef, *nargdef; static INTDEF standardint[] = { { V('n',' '), NROFF, 0, NULL }, @@ -168,10 +169,15 @@ void stdinit(void) { while (intdef->nr) { if (intdef->nr == NROFF) intdef->nr = nroff; else if (intdef->nr == TROFF) intdef->nr = !nroff; + if (intdef->nr == V('.','$')) + nargdef = intdef; intdef->next = &standardint[i]; intdef = intdef->next; i++; } intdef = &standardint[0]; defdef = NULL; + + if (!nargdef) + abort(); } -- cgit v1.2.3