version 1.22, 2010/07/18 12:10:08 |
version 1.23, 2010/07/18 17:00:26 |
Line 240 mandoc_a2time(int flags, const char *p) |
|
Line 240 mandoc_a2time(int flags, const char *p) |
|
|
|
|
|
int |
int |
mandoc_eos(const char *p, size_t sz) |
mandoc_eos(const char *p, size_t sz, int enclosed) |
{ |
{ |
|
const char *q; |
|
int found; |
|
|
if (0 == sz) |
if (0 == sz) |
return(0); |
return(0); |
Line 252 mandoc_eos(const char *p, size_t sz) |
|
Line 254 mandoc_eos(const char *p, size_t sz) |
|
* propogate outward. |
* propogate outward. |
*/ |
*/ |
|
|
for ( ; sz; sz--) { |
found = 0; |
switch (p[(int)sz - 1]) { |
for (q = p + sz - 1; q >= p; q--) { |
|
switch (*q) { |
case ('\"'): |
case ('\"'): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case ('\''): |
case ('\''): |
Line 261 mandoc_eos(const char *p, size_t sz) |
|
Line 264 mandoc_eos(const char *p, size_t sz) |
|
case (']'): |
case (']'): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case (')'): |
case (')'): |
|
if (0 == found) |
|
enclosed = 1; |
break; |
break; |
case ('.'): |
case ('.'): |
/* Escaped periods. */ |
|
if (sz > 1 && '\\' == p[(int)sz - 2]) |
|
return(0); |
|
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case ('!'): |
case ('!'): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case ('?'): |
case ('?'): |
return(1); |
found = 1; |
|
break; |
default: |
default: |
return(0); |
return(found && (!enclosed || isalnum(*q))); |
} |
} |
} |
} |
|
|
return(0); |
return(found && !enclosed); |
} |
} |
|
|
|
|