version 1.9, 2010/01/01 17:14:28 |
version 1.17, 2010/06/01 11:47:28 |
Line 43 mandoc_special(const char *p) |
|
Line 43 mandoc_special(const char *p) |
|
return(0); |
return(0); |
|
|
switch (*p) { |
switch (*p) { |
case ('\\'): |
|
/* FALLTHROUGH */ |
|
case ('\''): |
case ('\''): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case ('`'): |
case ('`'): |
Line 63 mandoc_special(const char *p) |
|
Line 61 mandoc_special(const char *p) |
|
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case (' '): |
case (' '): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
|
case ('}'): |
|
/* FALLTHROUGH */ |
case ('|'): |
case ('|'): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case ('&'): |
case ('&'): |
Line 75 mandoc_special(const char *p) |
|
Line 75 mandoc_special(const char *p) |
|
return(2); |
return(2); |
case ('e'): |
case ('e'): |
return(2); |
return(2); |
case ('f'): |
|
if ('\0' == *++p || ! isgraph((u_char)*p)) |
|
return(0); |
|
return(3); |
|
case ('s'): |
case ('s'): |
if ('\0' == *++p) |
if ('\0' == *++p) |
return(2); |
return(2); |
Line 154 mandoc_special(const char *p) |
|
Line 150 mandoc_special(const char *p) |
|
} |
} |
|
|
return(c); |
return(c); |
|
case ('f'): |
|
/* FALLTHROUGH */ |
|
case ('F'): |
|
/* FALLTHROUGH */ |
case ('*'): |
case ('*'): |
if (0 == *++p || ! isgraph((u_char)*p)) |
if (0 == *++p || ! isgraph((u_char)*p)) |
return(0); |
return(0); |
Line 302 mandoc_a2time(int flags, const char *p) |
|
Line 302 mandoc_a2time(int flags, const char *p) |
|
return(0); |
return(0); |
} |
} |
|
|
|
|
|
int |
|
mandoc_eos(const char *p, size_t sz) |
|
{ |
|
|
|
if (0 == sz) |
|
return(0); |
|
|
|
/* |
|
* End-of-sentence recognition must include situations where |
|
* some symbols, such as `)', allow prior EOS punctuation to |
|
* propogate outward. |
|
*/ |
|
|
|
for ( ; sz; sz--) { |
|
switch (p[(int)sz - 1]) { |
|
case ('\"'): |
|
/* FALLTHROUGH */ |
|
case ('\''): |
|
/* FALLTHROUGH */ |
|
case (']'): |
|
/* FALLTHROUGH */ |
|
case (')'): |
|
break; |
|
case ('.'): |
|
/* Escaped periods. */ |
|
if (sz > 1 && '\\' == p[(int)sz - 2]) |
|
return(0); |
|
/* FALLTHROUGH */ |
|
case ('!'): |
|
/* FALLTHROUGH */ |
|
case ('?'): |
|
return(1); |
|
default: |
|
return(0); |
|
} |
|
} |
|
|
|
return(0); |
|
} |
|
|
|
|
|
int |
|
mandoc_hyph(const char *start, const char *c) |
|
{ |
|
|
|
/* |
|
* Choose whether to break at a hyphenated character. We only |
|
* do this if it's free-standing within a word. |
|
*/ |
|
|
|
/* Skip first/last character of buffer. */ |
|
if (c == start || '\0' == *(c + 1)) |
|
return(0); |
|
/* Skip first/last character of word. */ |
|
if ('\t' == *(c + 1) || '\t' == *(c - 1)) |
|
return(0); |
|
if (' ' == *(c + 1) || ' ' == *(c - 1)) |
|
return(0); |
|
/* Skip double invocations. */ |
|
if ('-' == *(c + 1) || '-' == *(c - 1)) |
|
return(0); |
|
/* Skip escapes. */ |
|
if ('\\' == *(c - 1)) |
|
return(0); |
|
|
|
return(1); |
|
} |