]> granicus.if.org Git - mutt/commitdiff
makedoc: Add support for monospace fonts with \fC...\fP
authorRocco Rutte <pdmef@gmx.net>
Sat, 30 Aug 2008 18:58:49 +0000 (20:58 +0200)
committerRocco Rutte <pdmef@gmx.net>
Sat, 30 Aug 2008 18:58:49 +0000 (20:58 +0200)
doc/devel-notes.txt
doc/makedoc.c

index ec845ca92c1d5ab763454e874768bcdc542ea887..902a43fa024ab5bf53e6c41f78e625239114376b 100644 (file)
@@ -216,10 +216,12 @@ expected to be plain text, with some formatting instructions roughly
 similar to [ntg]roff:
 
  - \fI switches to italics
+
  - \fB switches to boldface
 
- - \fP switches to normal display
+ - \fT switches to monospace
+
+ - \fP switches to normal display after \fI, \fB or \fT
 
  - \(as can be used to represent an asterisk (*).  This is intended
    to help avoiding character sequences such as /* or */ inside
index 32a1f4da66e9064e901e9e7f1fd7827c5620c962..d50b1c19e908edfee44a55e5a5647bb1f1f11b24 100644 (file)
@@ -77,11 +77,13 @@ enum output_formats_t
 #define D_DD            (1 << 8)
 #define D_PA            (1 << 9)
 #define D_IL           (1 << 10)
+#define D_TT            (1 << 11)
 
 enum
 {
   SP_START_EM,
   SP_START_BF,
+  SP_START_TT,
   SP_END_FT,
   SP_NEWLINE,
   SP_NEWPAR,
@@ -772,7 +774,7 @@ static int flush_doc (int docstat, FILE *out)
   if (docstat & (D_DL))
     docstat = print_it (SP_END_DL, NULL, out, docstat);
 
-  if (docstat & (D_EM | D_BF))
+  if (docstat & (D_EM | D_BF | D_TT))
     docstat = print_it (SP_END_FT, NULL, out, docstat);
 
   docstat = print_it (SP_END_SECT, NULL, out, docstat);
@@ -800,9 +802,10 @@ static int print_it (int special, char *str, FILE *out, int docstat)
       {
        static int Continuation = 0;
 
-       case SP_END_FT: docstat &= ~(D_EM|D_BF); break;
+       case SP_END_FT: docstat &= ~(D_EM|D_BF|D_TT); break;
        case SP_START_BF: docstat |= D_BF; break;
        case SP_START_EM: docstat |= D_EM; break;
+        case SP_START_TT: docstat |= D_TT; break;
        case SP_NEWLINE: 
        {
          if (onl)
@@ -909,23 +912,30 @@ static int print_it (int special, char *str, FILE *out, int docstat)
        case SP_END_FT: 
        {
          fputs ("\\fP", out);
-         docstat &= ~(D_EM|D_BF);
+         docstat &= ~(D_EM|D_BF|D_TT);
          break;
        }
        case SP_START_BF: 
        {
          fputs ("\\fB", out);
          docstat |= D_BF;
-         docstat &= ~D_EM;
+         docstat &= ~(D_EM|D_TT);
          break;
        }
        case SP_START_EM:
        {
          fputs ("\\fI", out);
          docstat |= D_EM;
-         docstat &= ~D_BF;
+         docstat &= ~(D_BF|D_TT);
          break;
        }
+        case SP_START_TT:
+       {
+         fputs ("\\fC", out);
+         docstat |= D_TT;
+         docstat &= ~(D_BF|D_EM);
+         break;
+        }
        case SP_NEWLINE:
        {
          if (onl)
@@ -1041,23 +1051,31 @@ static int print_it (int special, char *str, FILE *out, int docstat)
        {
          if (docstat & D_EM) fputs ("</emphasis>", out);
          if (docstat & D_BF) fputs ("</emphasis>", out);
-         docstat &= ~(D_EM|D_BF);
+          if (docstat & D_TT) fputs ("</literal>", out);
+         docstat &= ~(D_EM|D_BF|D_TT);
          break;
        }
        case SP_START_BF: 
        {
          fputs ("<emphasis role=\"bold\">", out);
          docstat |= D_BF;
-         docstat &= ~D_EM;
+         docstat &= ~(D_EM|D_TT);
          break;
        }
        case SP_START_EM:
        {
          fputs ("<emphasis>", out);
          docstat |= D_EM;
-         docstat &= ~D_BF;
+         docstat &= ~(D_BF|D_TT);
          break;
        }
+        case SP_START_TT:
+       {
+         fputs ("<literal>", out);
+         docstat |= D_TT;
+         docstat &= ~(D_BF|D_EM);
+         break;
+        }
        case SP_NEWLINE:
        {
          if (onl)
@@ -1264,6 +1282,12 @@ static int handle_docline (char *l, FILE *out, int docstat)
       docstat = print_it (SP_START_BF, NULL, out, docstat);
       s += 2;
     }
+    else if (!strncmp (s, "\\fC", 3))
+    {
+      docstat = commit_buff (buff, &d, out, docstat);
+      docstat = print_it (SP_START_TT, NULL, out, docstat);
+      s += 2;
+    }
     else if (!strncmp (s, "\\fP", 3))
     {
       docstat = commit_buff (buff, &d, out, docstat);