version 1.51, 2011/05/14 17:54:42 |
version 1.55, 2011/07/21 23:30:39 |
Line 125 mandoc_escape(const char **end, const char **start, in |
|
Line 125 mandoc_escape(const char **end, const char **start, in |
|
break; |
break; |
case ('['): |
case ('['): |
gly = ESCAPE_SPECIAL; |
gly = ESCAPE_SPECIAL; |
|
/* |
|
* Unicode escapes are defined in groff as \[uXXXX] to |
|
* \[u10FFFF], where the contained value must be a valid |
|
* Unicode codepoint. Here, however, only check whether |
|
* it's not a zero-width escape. |
|
*/ |
|
if ('u' == cp[i] && ']' != cp[i + 1]) |
|
gly = ESCAPE_UNICODE; |
term = ']'; |
term = ']'; |
break; |
break; |
case ('C'): |
case ('C'): |
Line 156 mandoc_escape(const char **end, const char **start, in |
|
Line 164 mandoc_escape(const char **end, const char **start, in |
|
if (ESCAPE_ERROR == gly) |
if (ESCAPE_ERROR == gly) |
gly = ESCAPE_IGNORE; |
gly = ESCAPE_IGNORE; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case ('*'): |
|
if (ESCAPE_ERROR == gly) |
|
gly = ESCAPE_PREDEF; |
|
/* FALLTHROUGH */ |
|
case ('f'): |
case ('f'): |
if (ESCAPE_ERROR == gly) |
if (ESCAPE_ERROR == gly) |
gly = ESCAPE_FONT; |
gly = ESCAPE_FONT; |
Line 428 mandoc_realloc(void *ptr, size_t size) |
|
Line 432 mandoc_realloc(void *ptr, size_t size) |
|
return(ptr); |
return(ptr); |
} |
} |
|
|
|
char * |
|
mandoc_strndup(const char *ptr, size_t sz) |
|
{ |
|
char *p; |
|
|
|
p = mandoc_malloc(sz + 1); |
|
memcpy(p, ptr, sz); |
|
p[(int)sz] = '\0'; |
|
return(p); |
|
} |
|
|
char * |
char * |
mandoc_strdup(const char *ptr) |
mandoc_strdup(const char *ptr) |
{ |
{ |
Line 694 mandoc_getcontrol(const char *cp, int *ppos) |
|
Line 708 mandoc_getcontrol(const char *cp, int *ppos) |
|
* If the string is invalid, or is less than 0, return -1. |
* If the string is invalid, or is less than 0, return -1. |
*/ |
*/ |
int |
int |
mandoc_strntou(const char *p, size_t sz, int base) |
mandoc_strntoi(const char *p, size_t sz, int base) |
{ |
{ |
char buf[32]; |
char buf[32]; |
char *ep; |
char *ep; |
Line 712 mandoc_strntou(const char *p, size_t sz, int base) |
|
Line 726 mandoc_strntou(const char *p, size_t sz, int base) |
|
if (buf[0] == '\0' || *ep != '\0') |
if (buf[0] == '\0' || *ep != '\0') |
return(-1); |
return(-1); |
|
|
if ((errno == ERANGE && |
if (v > INT_MAX) |
(v == LONG_MAX || v == LONG_MIN)) || |
v = INT_MAX; |
(v > INT_MAX || v < 0)) |
if (v < INT_MIN) |
return(-1); |
v = INT_MIN; |
|
|
return((int)v); |
return((int)v); |
} |
} |
|
|