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

Diff for /mandoc/roff.c between version 1.393 and 1.395

version 1.393, 2022/06/03 12:15:55 version 1.395, 2022/08/16 17:30:11
Line 40 
Line 40 
 #include "tbl_parse.h"  #include "tbl_parse.h"
 #include "eqn_parse.h"  #include "eqn_parse.h"
   
 /*  
  * ASCII_ESC is used to signal from roff_getarg() to roff_expand()  
  * that an escape sequence resulted from copy-in processing and  
  * needs to be checked or interpolated.  As it is used nowhere  
  * else, it is defined here rather than in a header file.  
  */  
 #define ASCII_ESC       27  
   
 /* Maximum number of string expansions per line, to break infinite loops. */  /* Maximum number of string expansions per line, to break infinite loops. */
 #define EXPAND_LIMIT    1000  #define EXPAND_LIMIT    1000
   
Line 1640  roff_getarg(struct roff *r, char **cpp, int ln, int *p
Line 1632  roff_getarg(struct roff *r, char **cpp, int ln, int *p
                                 cp++;                                  cp++;
                                 break;                                  break;
                         case '\\':                          case '\\':
                                 newesc = 1;                                  /*
                                    * Signal to roff_expand() that an escape
                                    * sequence resulted from copy-in processing
                                    * and needs to be checked or interpolated.
                                    */
                                 cp[-pairs] = ASCII_ESC;                                  cp[-pairs] = ASCII_ESC;
                                   newesc = 1;
                                 pairs++;                                  pairs++;
                                 cp++;                                  cp++;
                                 break;                                  break;
Line 3740  roff_tr(ROFF_ARGS)
Line 3737  roff_tr(ROFF_ARGS)
 {  {
         const char      *p, *first, *second;          const char      *p, *first, *second;
         size_t           fsz, ssz;          size_t           fsz, ssz;
         enum mandoc_esc  esc;  
   
         p = buf->buf + pos;          p = buf->buf + pos;
   
Line 3754  roff_tr(ROFF_ARGS)
Line 3750  roff_tr(ROFF_ARGS)
   
                 first = p++;                  first = p++;
                 if (*first == '\\') {                  if (*first == '\\') {
                         esc = mandoc_escape(&p, NULL, NULL);                          if (mandoc_escape(&p, NULL, NULL) == ESCAPE_ERROR)
                         if (esc == ESCAPE_ERROR) {  
                                 mandoc_msg(MANDOCERR_ESC_BAD, ln,  
                                     (int)(p - buf->buf), "%s", first);  
                                 return ROFF_IGN;                                  return ROFF_IGN;
                         }  
                         fsz = (size_t)(p - first);                          fsz = (size_t)(p - first);
                 }                  }
   
                 second = p++;                  second = p++;
                 if (*second == '\\') {                  if (*second == '\\') {
                         esc = mandoc_escape(&p, NULL, NULL);                          if (mandoc_escape(&p, NULL, NULL) == ESCAPE_ERROR)
                         if (esc == ESCAPE_ERROR) {  
                                 mandoc_msg(MANDOCERR_ESC_BAD, ln,  
                                     (int)(p - buf->buf), "%s", second);  
                                 return ROFF_IGN;                                  return ROFF_IGN;
                         }  
                         ssz = (size_t)(p - second);                          ssz = (size_t)(p - second);
                 } else if (*second == '\0') {                  } else if (*second == '\0') {
                         mandoc_msg(MANDOCERR_TR_ODD, ln,                          mandoc_msg(MANDOCERR_TR_ODD, ln,

Legend:
Removed from v.1.393  
changed lines
  Added in v.1.395

CVSweb