version 1.13, 2010/05/14 14:09:13 |
version 1.14, 2010/05/15 06:48:13 |
Line 308 mandoc_eos(const char *p, size_t sz) |
|
Line 308 mandoc_eos(const char *p, size_t sz) |
|
if (0 == sz) |
if (0 == sz) |
return(0); |
return(0); |
|
|
switch (p[(int)sz - 1]) { |
/* |
case ('.'): |
* End-of-sentence recognition must include situations where |
/* Escaped periods. */ |
* some symbols, such as `)', allow prior EOS punctuation to |
if (sz > 1 && '\\' == p[(int)sz - 2]) |
* propogate outward. |
|
*/ |
|
|
|
for ( ; sz; sz--) { |
|
switch (p[(int)sz - 1]) { |
|
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); |
/* FALLTHROUGH */ |
} |
case ('!'): |
|
/* FALLTHROUGH */ |
|
case ('?'): |
|
break; |
|
default: |
|
return(0); |
|
} |
} |
|
|
return(1); |
return(0); |
} |
} |