/*
* Copyright (c) 1993 W. Richard Stevens. All rights reserved.
* Permission to use or modify this software and its documentation only for
* educational purposes and without fee is hereby granted, provided that
* the above copyright notice appear in all copies. The author makes no
* representations about the suitability of this software for any purpose.
* It is provided "as is" without express or implied warranty.
*/
#include "sock.h"
/* Convert newline to return/newline. */
int
crlf_add(char *dst, int dstsize, const char *src, int lenin)
{
int lenout;
char c;
if ( (lenout = lenin) > dstsize)
err_quit("crlf_add: destination not big enough");
for ( ; lenin > 0; lenin--) {
if ( (c = *src++) == '\n') {
if (++lenout >= dstsize)
err_quit("crlf_add: destination not big enough");
*dst++ = '\r';
}
*dst++ = c;
}
return(lenout);
}
int
crlf_strip(char *dst, int dstsize, const char *src, int lenin)
{
int lenout;
char c;
for (lenout = 0; lenin > 0; lenin--) {
if ( (c = *src++) != '\r') {
if (++lenout >= dstsize)
err_quit("crlf_strip: destination not big enough");
*dst++ = c;
}
}
return(lenout);
}
syntax highlighted by Code2HTML, v. 0.9.1