* Re: mdocml: Make -man -Tascii not break within literal lines [not found] <201101121523.p0CFNQNx028921@krisdoz.my.domain> @ 2011-01-16 3:53 ` Ingo Schwarze 2011-01-16 9:56 ` Kristaps Dzonsons 0 siblings, 1 reply; 3+ messages in thread From: Ingo Schwarze @ 2011-01-16 3:53 UTC (permalink / raw) To: tech Hi Kristaps, this one caused my regression test suite to segfault - specifically the test having a blank line inside literal context died. kristaps@mdocml.bsd.lv wrote on Wed, Jan 12, 2011 at 10:23:26AM -0500: > Log Message: > ----------- > Make -man -Tascii not break within literal lines, e.g., > > .nf > .B hello world > .fi > > Also, clean up the print_man_node() function a little bit. This problem > has long since been in the TODO and was recently noted again by Brad > Smith. The -T[x]html fix will follow... > > Modified Files: > -------------- > mdocml: > man_term.c > > Revision Data > ------------- > Index: man_term.c > =================================================================== > RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/man_term.c,v > retrieving revision 1.96 > retrieving revision 1.97 > diff -Lman_term.c -Lman_term.c -u -p -r1.96 -r1.97 > --- man_term.c > +++ man_term.c > @@ -855,23 +855,31 @@ print_man_node(DECL_ARGS) > size_t rm, rmax; > int c; > > - c = 1; > - > switch (n->type) { > case(MAN_TEXT): > + /* > + * If we have a blank line, output a vertical space. > + * If we have a space as the first character, break > + * before printing the line's data. > + */ > if ('\0' == *n->string) { > term_vspace(p); > break; Here is the problem. After your refactoring, this should now read "return". OK? Index: man_term.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/man_term.c,v retrieving revision 1.97 diff -u -p -r1.97 man_term.c --- man_term.c 12 Jan 2011 15:23:25 -0000 1.97 +++ man_term.c 16 Jan 2011 03:49:36 -0000 @@ -1,6 +1,6 @@ /* $Id: man_term.c,v 1.97 2011/01/12 15:23:25 kristaps Exp $ */ /* - * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv> + * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any @@ -864,7 +864,7 @@ print_man_node(DECL_ARGS) */ if ('\0' == *n->string) { term_vspace(p); - break; + return; } else if (' ' == *n->string && MAN_LINE & n->flags) term_newln(p); -- To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: mdocml: Make -man -Tascii not break within literal lines 2011-01-16 3:53 ` mdocml: Make -man -Tascii not break within literal lines Ingo Schwarze @ 2011-01-16 9:56 ` Kristaps Dzonsons 2011-01-16 20:02 ` Ingo Schwarze 0 siblings, 1 reply; 3+ messages in thread From: Kristaps Dzonsons @ 2011-01-16 9:56 UTC (permalink / raw) To: tech; +Cc: Ingo Schwarze > Here is the problem. > After your refactoring, this should now read "return". > > OK? > > > Index: man_term.c > =================================================================== > RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/man_term.c,v > retrieving revision 1.97 > diff -u -p -r1.97 man_term.c > --- man_term.c 12 Jan 2011 15:23:25 -0000 1.97 > +++ man_term.c 16 Jan 2011 03:49:36 -0000 > @@ -1,6 +1,6 @@ > /* $Id: man_term.c,v 1.97 2011/01/12 15:23:25 kristaps Exp $ */ > /* > - * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons<kristaps@bsd.lv> > + * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons<kristaps@bsd.lv> > * Copyright (c) 2010, 2011 Ingo Schwarze<schwarze@openbsd.org> > * > * Permission to use, copy, modify, and distribute this software for any > @@ -864,7 +864,7 @@ print_man_node(DECL_ARGS) > */ > if ('\0' == *n->string) { > term_vspace(p); > - break; > + return; > } else if (' ' == *n->string&& MAN_LINE& n->flags) > term_newln(p); Ingo, great catch! Is it doing the same in -Thtml? You may want to check -mdoc too (in both cases)... They all use the same logic. Ok Kristaps. -- To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: mdocml: Make -man -Tascii not break within literal lines 2011-01-16 9:56 ` Kristaps Dzonsons @ 2011-01-16 20:02 ` Ingo Schwarze 0 siblings, 0 replies; 3+ messages in thread From: Ingo Schwarze @ 2011-01-16 20:02 UTC (permalink / raw) To: tech Hi Kristaps, Kristaps Dzonsons wrote on Sun, Jan 16, 2011 at 10:56:20AM +0100: > >Index: man_term.c > >=================================================================== > >RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/man_term.c,v > >retrieving revision 1.97 > >diff -u -p -r1.97 man_term.c > >--- man_term.c 12 Jan 2011 15:23:25 -0000 1.97 > >+++ man_term.c 16 Jan 2011 03:49:36 -0000 > >@@ -1,6 +1,6 @@ > > /* $Id: man_term.c,v 1.97 2011/01/12 15:23:25 kristaps Exp $ */ > > /* > >- * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons<kristaps@bsd.lv> > >+ * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons<kristaps@bsd.lv> > > * Copyright (c) 2010, 2011 Ingo Schwarze<schwarze@openbsd.org> > > * > > * Permission to use, copy, modify, and distribute this software for any > >@@ -864,7 +864,7 @@ print_man_node(DECL_ARGS) > > */ > > if ('\0' == *n->string) { > > term_vspace(p); > >- break; > >+ return; > > } else if (' ' == *n->string&& MAN_LINE& n->flags) > > term_newln(p); > > Ingo, great catch! Is it doing the same in -Thtml? No, in man_html.c, function print_man_node(), the comparable place in the code already does return. > You may want to check -mdoc too (in both cases)... > They all use the same logic. In mdoc_term.c, the function print_mdoc_node() does not contain any return statement at all, so it is OK that the leading space case doesn't, either. In mdoc_html.c, function print_mdoc_node(), the return is at the end of the MDOC_TEXT case, which correctly covers both the leading space and the regular case. Thus, the logic is _slightly_ different in all four files, and man_term.c was the only one affected. I'm going to merge the fix to bsd.lv right now. Yours, Ingo -- To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-01-16 20:02 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <201101121523.p0CFNQNx028921@krisdoz.my.domain> 2011-01-16 3:53 ` mdocml: Make -man -Tascii not break within literal lines Ingo Schwarze 2011-01-16 9:56 ` Kristaps Dzonsons 2011-01-16 20:02 ` Ingo 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).