[BACK]Return to roff_escape.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mandoc

Diff for /src/usr.bin/mandoc/roff_escape.c between version 1.14 and 1.15

version 1.14, 2022/06/08 13:08:00 version 1.15, 2024/05/16 21:21:08
Line 467 
Line 467 
                 /*                  /*
                  * Unicode escapes are defined in groff as \[u0000]                   * Unicode escapes are defined in groff as \[u0000]
                  * to \[u10FFFF], where the contained value must be                   * to \[u10FFFF], where the contained value must be
                  * a valid Unicode codepoint.  Here, however, only                   * a valid Unicode codepoint.
                  * check the length and range.  
                  */                   */
   
                 if (buf[iarg] != 'u' || argl < 5 || argl > 7)                  if (buf[iarg] != 'u' || argl < 5 || argl > 7)
                         break;                          break;
                 if (argl == 7 &&                  if (argl == 7 &&  /* beyond the Unicode range */
                     (buf[iarg + 1] != '1' || buf[iarg + 2] != '0')) {                      (buf[iarg + 1] != '1' || buf[iarg + 2] != '0')) {
                         err = MANDOCERR_ESC_BADCHAR;                          err = MANDOCERR_ESC_BADCHAR;
                         break;                          break;
Line 482 
Line 481 
                         err = MANDOCERR_ESC_BADCHAR;                          err = MANDOCERR_ESC_BADCHAR;
                         break;                          break;
                 }                  }
                 if (argl == 5 && buf[iarg + 1] == 'D' &&                  if (argl == 5 &&  /* UTF-16 surrogate */
                     strchr("89ABCDEF", buf[iarg + 2]) != NULL) {                      toupper((unsigned char)buf[iarg + 1]) == 'D' &&
                       strchr("89ABCDEFabcdef", buf[iarg + 2]) != NULL) {
                         err = MANDOCERR_ESC_BADCHAR;                          err = MANDOCERR_ESC_BADCHAR;
                         break;                          break;
                 }                  }

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15