tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
* implement the missing text production macros
@ 2011-10-20  1:15 Ingo Schwarze
  2011-10-20 11:02 ` Kristaps Dzonsons
  0 siblings, 1 reply; 2+ messages in thread
From: Ingo Schwarze @ 2011-10-20  1:15 UTC (permalink / raw)
  To: tech

----- Forwarded message from Ingo Schwarze <schwarze@cvs.openbsd.org> -----

From: Ingo Schwarze <schwarze@cvs.openbsd.org>
Date: Wed, 19 Oct 2011 19:11:41 -0600 (MDT)
To: source-changes@cvs.openbsd.org
Subject: CVS: cvs.openbsd.org: src

CVSROOT:	/cvs
Module name:	src
Changes by:	schwarze@cvs.openbsd.org	2011/10/19 19:11:41

Modified files:
	usr.bin/mandoc : mdoc_man.c 

Log message:
Implement the missing text production macros (Bsx Bx Dx Fx Nx Ox Ux Bt Ud).
Some macros work without explicit implementation (At Db Os St).

----- End forwarded message -----


Some low-hanging fruit.

OK to commit to bsd.lv, too?
  Ingo


Index: mdoc_man.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_man.c,v
retrieving revision 1.4
diff -u -p -r1.4 mdoc_man.c
--- mdoc_man.c	9 Oct 2011 17:59:56 -0000	1.4
+++ mdoc_man.c	20 Oct 2011 01:04:47 -0000
@@ -52,6 +52,7 @@ static	void	  post_sp(DECL_ARGS);
 static	int	  pre_ap(DECL_ARGS);
 static	int	  pre_bd(DECL_ARGS);
 static	int	  pre_br(DECL_ARGS);
+static	int	  pre_bx(DECL_ARGS);
 static	int	  pre_dl(DECL_ARGS);
 static	int	  pre_enc(DECL_ARGS);
 static	int	  pre_it(DECL_ARGS);
@@ -60,6 +61,7 @@ static	int	  pre_ns(DECL_ARGS);
 static	int	  pre_pp(DECL_ARGS);
 static	int	  pre_sp(DECL_ARGS);
 static	int	  pre_sect(DECL_ARGS);
+static	int	  pre_ux(DECL_ARGS);
 static	int	  pre_xr(DECL_ARGS);
 static	void	  print_word(struct mman *, const char *);
 static	void	  print_node(DECL_ARGS);
@@ -68,7 +70,7 @@ static	const struct manact manacts[MDOC_
 	{ NULL, pre_ap, NULL, NULL, NULL }, /* Ap */
 	{ NULL, NULL, NULL, NULL, NULL }, /* Dd */
 	{ NULL, NULL, NULL, NULL, NULL }, /* Dt */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Os */
+	{ NULL, NULL, NULL, NULL, NULL }, /* Os */
 	{ NULL, pre_sect, post_sect, ".SH", NULL }, /* Sh */
 	{ NULL, pre_sect, post_sect, ".SS", NULL }, /* Ss */
 	{ NULL, pre_pp, NULL, NULL, NULL }, /* Pp */
@@ -101,17 +103,17 @@ static	const struct manact manacts[MDOC_
 	{ cond_head, pre_enc, NULL, "\\- ", NULL }, /* Nd */
 	{ NULL, pre_nm, post_nm, NULL, NULL }, /* Nm */
 	{ cond_body, pre_enc, post_enc, "[", "]" }, /* Op */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Ot */
-	{ NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* _Pa */
+	{ NULL, NULL, NULL, NULL, NULL }, /* Ot */
+	{ NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Pa */
 	{ NULL, pre_enc, post_enc, "The \\fB",
 		"\\fP\nfunction returns the value 0 if successful;\n"
 		"otherwise the value -1 is returned and the global\n"
 		"variable \\fIerrno\\fP is set to indicate the error."
 		}, /* Rv */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _St */
+	{ NULL, NULL, NULL, NULL, NULL }, /* St */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Va */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Vt */
-	{ NULL, pre_xr, NULL, NULL, NULL }, /* _Xr */
+	{ NULL, pre_xr, NULL, NULL, NULL }, /* Xr */
 	{ NULL, NULL, post_percent, NULL, NULL }, /* _%A */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _%B */
 	{ NULL, NULL, post_percent, NULL, NULL }, /* _%D */
@@ -126,14 +128,14 @@ static	const struct manact manacts[MDOC_
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Ac */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Ao */
 	{ cond_body, pre_enc, post_enc, "<", ">" }, /* Aq */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _At */
+	{ NULL, NULL, NULL, NULL, NULL }, /* At */
 	{ NULL, NULL, NULL, NULL, NULL }, /* Bc */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Bf */
 	{ cond_body, pre_enc, post_enc, "[", "]" }, /* Bo */
 	{ cond_body, pre_enc, post_enc, "[", "]" }, /* Bq */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Bsx */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Bx */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Db */
+	{ NULL, pre_ux, NULL, "BSD/OS", NULL }, /* Bsx */
+	{ NULL, pre_bx, NULL, NULL, NULL }, /* Bx */
+	{ NULL, NULL, NULL, NULL, NULL }, /* Db */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Dc */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Do */
 	{ cond_body, pre_enc, post_enc, "``", "''" }, /* Dq */
@@ -141,12 +143,12 @@ static	const struct manact manacts[MDOC_
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Ef */
 	{ NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Em */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Eo */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Fx */
+	{ NULL, pre_ux, NULL, "FreeBSD", NULL }, /* Fx */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Ms */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _No */
 	{ NULL, pre_ns, NULL, NULL, NULL }, /* Ns */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Nx */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Ox */
+	{ NULL, pre_ux, NULL, "NetBSD", NULL }, /* Nx */
+	{ NULL, pre_ux, NULL, "OpenBSD", NULL }, /* Ox */
 	{ NULL, NULL, NULL, NULL, NULL }, /* Pc */
 	{ NULL, NULL, post_pf, NULL, NULL }, /* Pf */
 	{ cond_body, pre_enc, post_enc, "(", ")" }, /* Po */
@@ -164,7 +166,7 @@ static	const struct manact manacts[MDOC_
 	{ NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Sx */
 	{ NULL, pre_enc, post_enc, "\\fB", "\\fP" }, /* Sy */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Tn */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Ux */
+	{ NULL, pre_ux, NULL, "UNIX", NULL }, /* Ux */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Xc */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Xo */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Fo */
@@ -173,10 +175,10 @@ static	const struct manact manacts[MDOC_
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Oc */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Bk */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Ek */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Bt */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Hf */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Fr */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Ud */
+	{ NULL, pre_ux, NULL, "is currently in beta test.", NULL }, /* Bt */
+	{ NULL, NULL, NULL, NULL, NULL }, /* Hf */
+	{ NULL, NULL, NULL, NULL, NULL }, /* Fr */
+	{ NULL, pre_ux, NULL, "currently under development.", NULL }, /* Ud */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Lb */
 	{ NULL, pre_pp, NULL, NULL, NULL }, /* Lp */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Lk */
@@ -187,7 +189,7 @@ static	const struct manact manacts[MDOC_
 	{ NULL, NULL, NULL, NULL, NULL }, /* _%C */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _Es */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _En */
-	{ NULL, NULL, NULL, NULL, NULL }, /* _Dx */
+	{ NULL, pre_ux, NULL, "DragonFly", NULL }, /* Dx */
 	{ NULL, NULL, NULL, NULL, NULL }, /* _%Q */
 	{ NULL, pre_br, NULL, NULL, NULL }, /* br */
 	{ NULL, pre_sp, post_sp, NULL, NULL }, /* sp */
@@ -469,6 +471,26 @@ pre_br(DECL_ARGS)
 }
 
 static int
+pre_bx(DECL_ARGS)
+{
+
+	n = n->child;
+	if (n) {
+		print_word(mm, n->string);
+		mm->need_space = 0;
+		n = n->next;
+	}
+	print_word(mm, "BSD");
+	if (NULL == n)
+		return(0);
+	mm->need_space = 0;
+	print_word(mm, "-");
+	mm->need_space = 0;
+	print_word(mm, n->string);
+	return(0);
+}
+
+static int
 pre_dl(DECL_ARGS)
 {
 
@@ -595,4 +617,17 @@ pre_xr(DECL_ARGS)
 	print_node(m, n, mm);
 	print_word(mm, ")");
 	return(0);
+}
+
+static int
+pre_ux(DECL_ARGS)
+{
+
+	print_word(mm, manacts[n->tok].prefix);
+	if (NULL == n->child)
+		return(0);
+	mm->need_space = 0;
+	print_word(mm, "\\~");
+	mm->need_space = 0;
+	return(1);
 }
--
 To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: implement the missing text production macros
  2011-10-20  1:15 implement the missing text production macros Ingo Schwarze
@ 2011-10-20 11:02 ` Kristaps Dzonsons
  0 siblings, 0 replies; 2+ messages in thread
From: Kristaps Dzonsons @ 2011-10-20 11:02 UTC (permalink / raw)
  To: tech; +Cc: Ingo Schwarze

> ----- Forwarded message from Ingo Schwarze<schwarze@cvs.openbsd.org>  -----
>
> From: Ingo Schwarze<schwarze@cvs.openbsd.org>
> Date: Wed, 19 Oct 2011 19:11:41 -0600 (MDT)
> To: source-changes@cvs.openbsd.org
> Subject: CVS: cvs.openbsd.org: src
>
> CVSROOT:	/cvs
> Module name:	src
> Changes by:	schwarze@cvs.openbsd.org	2011/10/19 19:11:41
>
> Modified files:
> 	usr.bin/mandoc : mdoc_man.c
>
> Log message:
> Implement the missing text production macros (Bsx Bx Dx Fx Nx Ox Ux Bt Ud).
> Some macros work without explicit implementation (At Db Os St).
>
> ----- End forwarded message -----
>
>
> Some low-hanging fruit.
>
> OK to commit to bsd.lv, too?

Ingo,

Ok kristaps.

Thanks!

Kristaps

--
 To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-10-20 11:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-20  1:15 implement the missing text production macros Ingo Schwarze
2011-10-20 11:02 ` Kristaps Dzonsons

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).