-#ifdef NOTDEF
- /* Keep track of previous \rs, we don't want to turn existing
- \r\n's into \r\n\n's */
- register int pr = 0;
-
- /* Copy things in chunks */
- char buf[CHUNK_SIZE];
-
- for (unsigned int i = 0; i < len; i += sizeof (buf) / 2)
- {
- register const char *src = (char *)ptr + i;
- int todo;
- if ((todo = len - i) > sizeof (buf) / 2)
- todo = sizeof (buf) / 2;
- register const char *end = src + todo;
- register char *dst = buf;
- while (src < end)
- {
- if (*src == '\n' && !pr)
- {
- /* Emit a cr lf here */
- *dst ++ = '\r';
- *dst ++ = '\n';
- }
- else if (*src == '\r')
- {
- *dst ++ = '\r';
- pr = 1;
- }
- else
- {
- *dst ++ = *src;
- pr = 0;
- }
- src++;
- }
- int want = dst - buf;
- if ((res = raw_write (buf, want)) != want)
- {
- if (res == -1)
- return -1;
- /* FIXME: */
- /* Tricky... Didn't write everything we wanted.. How can
- we work out exactly which chars were sent? We don't...
- This will only happen in pretty nasty circumstances. */
- rpos_ += i;
- return i;
- }
- }
-#else