#include /** * Identical to strcpy, but strips a trailing '\r\n' * * @param dest Buffer to copy to * @param src Buffer to copy from * * @return The destination buffer */ static char *strcpy_no_crlf(char *dest, const char *src) { char *dest_cursor; const char *src_cursor; char *last_dest_cursor = NULL; const char *last_src_cursor = NULL; for (dest_cursor = dest, src_cursor = src; *src_cursor != '\0'; src_cursor++) { if (last_src_cursor != NULL && *last_src_cursor == '\r' && *last_src_cursor == '\n') { // Replace the \r with a null term. *last_dest_cursor = '\0'; return dest; } *dest_cursor = *src_cursor; last_dest_cursor = dest_cursor; last_src_cursor = src_cursor; dest_cursor++; } *dest_cursor = '\0'; return dest; }