[BACK]Return to macro.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / docbook2mdoc

Diff for /docbook2mdoc/macro.c between version 1.19 and 1.20

version 1.19, 2019/05/02 04:12:18 version 1.20, 2019/05/02 12:40:42
Line 248  macro_nodeline(struct format *f, const char *name, str
Line 248  macro_nodeline(struct format *f, const char *name, str
 void  void
 print_text(struct format *f, const char *word, int flags)  print_text(struct format *f, const char *word, int flags)
 {  {
           int      ateos, inword;
   
         para_check(f);          para_check(f);
         switch (f->linestate) {          switch (f->linestate) {
         case LINE_NEW:          case LINE_NEW:
Line 262  print_text(struct format *f, const char *word, int fla
Line 264  print_text(struct format *f, const char *word, int fla
         }          }
         if (f->linestate == LINE_NEW && (*word == '.' || *word == '\''))          if (f->linestate == LINE_NEW && (*word == '.' || *word == '\''))
                 fputs("\\&", stdout);                  fputs("\\&", stdout);
           ateos = inword = 0;
         while (*word != '\0') {          while (*word != '\0') {
                   if (f->nofill == 0) {
                           switch (*word) {
                           case ' ':
                                   if (ateos == 0) {
                                           inword = 0;
                                           break;
                                   }
                                   ateos = inword = 0;
                                   /* Handle the end of a sentence. */
                                   while (*word == ' ')
                                           word++;
                                   switch (*word) {
                                   case '\0':
                                           break;
                                   case '\'':
                                   case '.':
                                           fputs("\n\\&", stdout);
                                           break;
                                   default:
                                           putchar('\n');
                                           break;
                                   }
                                   continue;
                           /* Detect the end of a sentence. */
                           case '!':
                           case '.':
                           case '?':
                                   if (inword > 1 &&
                                       (word[-2] != 'n' || word[-1] != 'c') &&
                                       (word[-2] != 'v' || word[-1] != 's'))
                                           ateos = 1;
                                   /* FALLTHROUGH */
                           case '"':
                           case '\'':
                           case ')':
                           case ']':
                                   inword = 0;
                                   break;
                           default:
                                   if (isalnum((unsigned char)*word))
                                           inword++;
                                   ateos = 0;
                                   break;
                           }
                   }
                 putchar(*word);                  putchar(*word);
                 if (*word++ == '\\')                  if (*word++ == '\\')
                         putchar('e');                          putchar('e');

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

CVSweb