source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: implement font modifiers in table layouts
@ 2014-10-13 23:31 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2014-10-13 23:31 UTC (permalink / raw)
  To: source

Log Message:
-----------
implement font modifiers in table layouts

Modified Files:
--------------
    mdocml:
        tbl.7
        tbl_term.c

Revision Data
-------------
Index: tbl.7
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/tbl.7,v
retrieving revision 1.18
retrieving revision 1.19
diff -Ltbl.7 -Ltbl.7 -u -p -r1.18 -r1.19
--- tbl.7
+++ tbl.7
@@ -1,6 +1,7 @@
 .\"	$Id$
 .\"
 .\" Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
+.\" Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
 .\"
 .\" Permission to use, copy, modify, and distribute this software for any
 .\" purpose with or without fee is hereby granted, provided that the above
@@ -195,7 +196,7 @@ Each layout line corresponds to a line o
 applies to all remaining data lines.
 Layout lines may also be separated by a comma.
 Each layout cell consists of one of the following case-insensitive keys:
-.Bl -tag -width Ds
+.Bl -tag -width 2n
 .It Cm c
 Centre a literal string within its column.
 .It Cm r
@@ -244,35 +245,35 @@ Keys may be followed by a set of modifie
 A modifier is either a modifier key or a natural number for specifying
 the minimum width of a column.
 The following case-insensitive modifier keys are available:
-.Cm z ,
-.Cm u ,
-.Cm e ,
-.Cm t ,
+.Bl -tag -width 2n
+.It Cm b
+Use a bold font for the contents of this column.
+.It Cm f
+The next character selects the font to use for this column.
+See the
+.Xr roff 7
+manual for supported one-character font names.
+.It Cm i
+Use an italic font for the contents of this column.
+.El
+.Pp
+The modifiers
 .Cm d ,
-.Cm b ,
-.Cm i ,
+.Cm e ,
 .Cm r ,
+.Cm t ,
+.Cm u ,
 and
-.Cm f
-.Po
-followed by
-.Cm b ,
-.Cm i ,
-.Cm r ,
-.Cm 3 ,
-.Cm 2 ,
-or
-.Cm 1
-.Pc .
-All of these are ignored by
+.Cm z
+are ignored by
 .Xr mandoc 1 .
 .Pp
 For example, the following layout specifies a centre-justified column of
 minimum width 10, followed by vertical bar, followed by a left-justified
-column of minimum width 10, another vertical bar, then a column
-justified about the decimal point in numbers:
+column of minimum width 10, another vertical bar, then a column using
+bold font justified about the decimal point in numbers:
 .Pp
-.Dl c10 | l10 | n
+.Dl c10 | l10 | nfB
 .Ss Data
 The data section follows the last layout row.
 By default, cells in a data section are delimited by a tab.
Index: tbl_term.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/tbl_term.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -Ltbl_term.c -Ltbl_term.c -u -p -r1.28 -r1.29
--- tbl_term.c
+++ tbl_term.c
@@ -43,6 +43,7 @@ static	void	tbl_number(struct termp *, c
 			const struct roffcol *);
 static	void	tbl_hrule(struct termp *, const struct tbl_span *);
 static	void	tbl_vrule(struct termp *, const struct tbl_head *);
+static	void	tbl_word(struct termp *, const struct tbl_dat *);
 
 
 static size_t
@@ -378,7 +379,7 @@ tbl_literal(struct termp *tp, const stru
 	}
 
 	tbl_char(tp, ASCII_NBRSP, padl);
-	term_word(tp, dp->string);
+	tbl_word(tp, dp);
 	tbl_char(tp, ASCII_NBRSP, padr);
 }
 
@@ -419,8 +420,23 @@ tbl_number(struct termp *tp, const struc
 	padl = col->decimal - d;
 
 	tbl_char(tp, ASCII_NBRSP, padl);
-	term_word(tp, dp->string);
+	tbl_word(tp, dp);
 	if (col->width > sz + padl)
 		tbl_char(tp, ASCII_NBRSP, col->width - sz - padl);
 }
 
+static void
+tbl_word(struct termp *tp, const struct tbl_dat *dp)
+{
+	const void	*prev_font;
+
+	prev_font = term_fontq(tp);
+	if (dp->layout->flags & TBL_CELL_BOLD)
+		term_fontpush(tp, TERMFONT_BOLD);
+	else if (dp->layout->flags & TBL_CELL_ITALIC)
+		term_fontpush(tp, TERMFONT_UNDER);
+
+	term_word(tp, dp->string);
+
+	term_fontpopq(tp, prev_font);
+}
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-10-13 23:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-13 23:31 mdocml: implement font modifiers in table layouts schwarze

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).