]> git.cameronkatri.com Git - mandoc.git/blobdiff - man_html.c
Support -Ios='OpenBSD 5.1' to override uname(3) as the source of the
[mandoc.git] / man_html.c
index fce1d4c529e1fe5ae55d6c9cc8c49496fe4651e1..a4f64c5e38076eccf63d762c75dd08960e9b85d6 100644 (file)
@@ -1,6 +1,6 @@
-/*     $Id: man_html.c,v 1.85 2011/12/04 00:44:12 schwarze Exp $ */
+/*     $Id: man_html.c,v 1.87 2012/05/27 17:39:28 schwarze Exp $ */
 /*
- * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -58,26 +58,25 @@ static      void              print_man(MAN_ARGS);
 static void              print_man_head(MAN_ARGS);
 static void              print_man_nodelist(MAN_ARGS);
 static void              print_man_node(MAN_ARGS);
-
 static int               a2width(const struct man_node *,
                                struct roffsu *);
-
-static int               man_alt_pre(MAN_ARGS);
-static int               man_br_pre(MAN_ARGS);
-static int               man_ign_pre(MAN_ARGS);
-static int               man_in_pre(MAN_ARGS);
-static int               man_literal_pre(MAN_ARGS);
-static void              man_root_post(MAN_ARGS);
-static void              man_root_pre(MAN_ARGS);
 static int               man_B_pre(MAN_ARGS);
 static int               man_HP_pre(MAN_ARGS);
-static int               man_I_pre(MAN_ARGS);
 static int               man_IP_pre(MAN_ARGS);
+static int               man_I_pre(MAN_ARGS);
+static int               man_OP_pre(MAN_ARGS);
 static int               man_PP_pre(MAN_ARGS);
 static int               man_RS_pre(MAN_ARGS);
 static int               man_SH_pre(MAN_ARGS);
 static int               man_SM_pre(MAN_ARGS);
 static int               man_SS_pre(MAN_ARGS);
+static int               man_alt_pre(MAN_ARGS);
+static int               man_br_pre(MAN_ARGS);
+static int               man_ign_pre(MAN_ARGS);
+static int               man_in_pre(MAN_ARGS);
+static int               man_literal_pre(MAN_ARGS);
+static void              man_root_post(MAN_ARGS);
+static void              man_root_pre(MAN_ARGS);
 
 static const struct htmlman mans[MAN_MAX] = {
        { man_br_pre, NULL }, /* br */
@@ -113,6 +112,7 @@ static      const struct htmlman mans[MAN_MAX] = {
        { man_ign_pre, NULL }, /* AT */
        { man_in_pre, NULL }, /* in */
        { man_ign_pre, NULL }, /* ft */
+       { man_OP_pre, NULL }, /* OP */
 };
 
 /*
@@ -584,6 +584,37 @@ man_HP_pre(MAN_ARGS)
        return(1);
 }
 
+/* ARGSUSED */
+static int
+man_OP_pre(MAN_ARGS)
+{
+       struct tag      *tt;
+       struct htmlpair  tag;
+
+       print_text(h, "[");
+       h->flags |= HTML_NOSPACE;
+       PAIR_CLASS_INIT(&tag, "opt");
+       tt = print_otag(h, TAG_SPAN, 1, &tag);
+
+       if (NULL != (n = n->child)) {
+               print_otag(h, TAG_B, 0, NULL);
+               print_text(h, n->string);
+       }
+
+       print_stagq(h, tt);
+
+       if (NULL != n && NULL != n->next) {
+               print_otag(h, TAG_I, 0, NULL);
+               print_text(h, n->next->string);
+       }
+
+       print_stagq(h, tt);
+       h->flags |= HTML_NOSPACE;
+       print_text(h, "]");
+       return(0);
+}
+
+
 /* ARGSUSED */
 static int
 man_B_pre(MAN_ARGS)