=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/man_html.c,v retrieving revision 1.114 retrieving revision 1.115 diff -c -r1.114 -r1.115 *** src/usr.bin/mandoc/man_html.c 2018/12/30 00:48:47 1.114 --- src/usr.bin/mandoc/man_html.c 2018/12/31 07:07:43 1.115 *************** *** 1,4 **** ! /* $OpenBSD: man_html.c,v 1.114 2018/12/30 00:48:47 schwarze Exp $ */ /* * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons * Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze --- 1,4 ---- ! /* $OpenBSD: man_html.c,v 1.115 2018/12/31 07:07:43 schwarze Exp $ */ /* * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons * Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze *************** *** 92,99 **** { man_I_pre, NULL }, /* I */ { man_alt_pre, NULL }, /* IR */ { man_alt_pre, NULL }, /* RI */ - { NULL, NULL }, /* nf */ - { NULL, NULL }, /* fi */ { NULL, NULL }, /* RE */ { man_RS_pre, NULL }, /* RS */ { man_ign_pre, NULL }, /* DT */ --- 92,97 ---- *************** *** 190,196 **** static void print_man_node(MAN_ARGS) { ! static int want_fillmode = MAN_fi; static int save_fillmode; struct tag *t; --- 188,194 ---- static void print_man_node(MAN_ARGS) { ! static int want_fillmode = ROFF_fi; static int save_fillmode; struct tag *t; *************** *** 202,215 **** */ switch (n->tok) { ! case MAN_nf: case MAN_EX: ! want_fillmode = MAN_nf; return; ! case MAN_fi: case MAN_EE: ! want_fillmode = MAN_fi; ! if (fillmode(h, 0) == MAN_fi) print_otag(h, TAG_BR, ""); return; default: --- 200,213 ---- */ switch (n->tok) { ! case ROFF_nf: case MAN_EX: ! want_fillmode = ROFF_nf; return; ! case ROFF_fi: case MAN_EE: ! want_fillmode = ROFF_fi; ! if (fillmode(h, 0) == ROFF_fi) print_otag(h, TAG_BR, ""); return; default: *************** *** 230,249 **** /* FALLTHROUGH */ case MAN_SH: /* Section headers */ case MAN_SS: /* permanently cancel .nf. */ ! want_fillmode = MAN_fi; /* FALLTHROUGH */ case MAN_PP: /* These have no head. */ case MAN_RS: /* They will simply */ case MAN_UR: /* reopen .nf in the body. */ case MAN_MT: ! fillmode(h, MAN_fi); break; default: break; } break; case ROFFT_TBL: ! fillmode(h, MAN_fi); break; case ROFFT_ELEM: /* --- 228,247 ---- /* FALLTHROUGH */ case MAN_SH: /* Section headers */ case MAN_SS: /* permanently cancel .nf. */ ! want_fillmode = ROFF_fi; /* FALLTHROUGH */ case MAN_PP: /* These have no head. */ case MAN_RS: /* They will simply */ case MAN_UR: /* reopen .nf in the body. */ case MAN_MT: ! fillmode(h, ROFF_fi); break; default: break; } break; case ROFFT_TBL: ! fillmode(h, ROFF_fi); break; case ROFFT_ELEM: /* *************** *** 256,267 **** fillmode(h, want_fillmode); break; case ROFFT_TEXT: ! if (fillmode(h, want_fillmode) == MAN_fi && ! want_fillmode == MAN_fi && n->flags & NODE_LINE && *n->string == ' ' && (h->flags & HTML_NONEWLINE) == 0) print_otag(h, TAG_BR, ""); ! if (want_fillmode == MAN_nf || *n->string != '\0') break; print_paragraph(h); return; --- 254,265 ---- fillmode(h, want_fillmode); break; case ROFFT_TEXT: ! if (fillmode(h, want_fillmode) == ROFF_fi && ! want_fillmode == ROFF_fi && n->flags & NODE_LINE && *n->string == ' ' && (h->flags & HTML_NONEWLINE) == 0) print_otag(h, TAG_BR, ""); ! if (want_fillmode == ROFF_nf || *n->string != '\0') break; print_paragraph(h); return; *************** *** 334,340 **** /* This will automatically close out any font scope. */ print_stagq(h, t); ! if (fillmode(h, 0) == MAN_nf && n->next != NULL && n->next->flags & NODE_LINE) { /* In .nf =
, print even empty lines. */
  		h->col++;
--- 332,338 ----
  	/* This will automatically close out any font scope. */
  	print_stagq(h, t);
  
! 	if (fillmode(h, 0) == ROFF_nf &&
  	    n->next != NULL && n->next->flags & NODE_LINE) {
  		/* In .nf = 
, print even empty lines. */
  		h->col++;
***************
*** 343,349 ****
  }
  
  /*
!  * MAN_nf switches to no-fill mode, MAN_fi to fill mode.
   * Other arguments do not switch.
   * The old mode is returned.
   */
--- 341,347 ----
  }
  
  /*
!  * ROFF_nf switches to no-fill mode, ROFF_fi to fill mode.
   * Other arguments do not switch.
   * The old mode is returned.
   */
***************
*** 357,366 ****
  		if (pre->tag == TAG_PRE)
  			break;
  
! 	had = pre == NULL ? MAN_fi : MAN_nf;
  
  	if (want && want != had) {
! 		if (want == MAN_nf)
  			print_otag(h, TAG_PRE, "");
  		else
  			print_tagq(h, pre);
--- 355,364 ----
  		if (pre->tag == TAG_PRE)
  			break;
  
! 	had = pre == NULL ? ROFF_fi : ROFF_nf;
  
  	if (want && want != had) {
! 		if (want == ROFF_nf)
  			print_otag(h, TAG_PRE, "");
  		else
  			print_tagq(h, pre);