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

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

version 1.14, 2022/06/08 13:23:57 version 1.15, 2024/05/16 21:23:00
Line 467  roff_escape(const char *buf, const int ln, const int a
Line 467  roff_escape(const char *buf, const int ln, const int a
                 /*                  /*
                  * 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  roff_escape(const char *buf, const int ln, const int a
Line 481  roff_escape(const char *buf, const int ln, const int a
                         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

CVSweb