version 1.361, 2019/01/05 09:10:32 |
version 1.362, 2019/02/06 17:40:13 |
Line 3865 roff_renamed(ROFF_ARGS) |
|
Line 3865 roff_renamed(ROFF_ARGS) |
|
return ROFF_CONT; |
return ROFF_CONT; |
} |
} |
|
|
|
/* |
|
* Measure the length in bytes of the roff identifier at *cpp |
|
* and advance the pointer to the next word. |
|
*/ |
static size_t |
static size_t |
roff_getname(struct roff *r, char **cpp, int ln, int pos) |
roff_getname(struct roff *r, char **cpp, int ln, int pos) |
{ |
{ |
Line 3872 roff_getname(struct roff *r, char **cpp, int ln, int p |
|
Line 3876 roff_getname(struct roff *r, char **cpp, int ln, int p |
|
size_t namesz; |
size_t namesz; |
|
|
name = *cpp; |
name = *cpp; |
if ('\0' == *name) |
if (*name == '\0') |
return 0; |
return 0; |
|
|
/* Read until end of name and terminate it with NUL. */ |
/* Advance cp to the byte after the end of the name. */ |
|
|
for (cp = name; 1; cp++) { |
for (cp = name; 1; cp++) { |
if ('\0' == *cp || ' ' == *cp) { |
namesz = cp - name; |
namesz = cp - name; |
if (*cp == '\0' || *cp == ' ') |
break; |
break; |
} |
if (*cp != '\\') |
if ('\\' != *cp) |
|
continue; |
continue; |
namesz = cp - name; |
if (cp[1] == '{' || cp[1] == '}') |
if ('{' == cp[1] || '}' == cp[1]) |
|
break; |
break; |
cp++; |
if (*++cp == '\\') |
if ('\\' == *cp) |
|
continue; |
continue; |
mandoc_msg(MANDOCERR_NAMESC, ln, pos, |
mandoc_msg(MANDOCERR_NAMESC, ln, pos, |
"%.*s", (int)(cp - name + 1), name); |
"%.*s", (int)(cp - name + 1), name); |
Line 3896 roff_getname(struct roff *r, char **cpp, int ln, int p |
|
Line 3898 roff_getname(struct roff *r, char **cpp, int ln, int p |
|
} |
} |
|
|
/* Read past spaces. */ |
/* Read past spaces. */ |
while (' ' == *cp) |
|
|
while (*cp == ' ') |
cp++; |
cp++; |
|
|
*cpp = cp; |
*cpp = cp; |