| delorie.com/archives/browse.cgi | search |
| Subject: | RE: Non-compliant strxfrm |
| MIME-Version: | 1.0 |
| Date: | Tue, 2 Sep 2003 14:36:13 +0100 |
| content-class: | urn:content-classes:message |
| X-MimeOLE: | Produced By Microsoft Exchange V6.0.4417.0 |
| Message-ID: | <F1A9C8D7A58D1B45A9C16FE7E3DA83D7021890@server.HME.hme.ltd.uk> |
| X-MS-Has-Attach: | |
| X-MS-TNEF-Correlator: | |
| Thread-Topic: | Non-compliant strxfrm |
| Thread-Index: | AcNxU5QFz9VeiYoUR96vO74kKLcSgAAAi7UQ |
| From: | "Melvin Curran" <Melvin AT HME DOT Ltd DOT uk> |
| To: | <djgpp-workers AT delorie DOT com> |
| X-MIME-Autoconverted: | from quoted-printable to 8bit by delorie.com id h82DaJY09535 |
| Reply-To: | djgpp-workers AT delorie DOT com |
>If dst points to invalid memory there is little we can do about it.
>The OS will detect any access faults automatically. Letting it do
>that is what most of the other libc functions do.
In that case, a couple of minor changes to the function and we are
left with the function below.
size_t
strxfrm(dst, src, n)
char *dst;
const char *src;
size_t n;
{
size_t r = 0;
int c;
while ((c = *src++) != 0)
{
r++;
if (n < 2)
{
while (*src++ != 0)
r++;
break;
}
if (--n)
*dst++ = c;
}
if (n)
*dst = 0;
return r;
}
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |