blob: 8eb6a014fa2ee14d1fe89f458ac6ab215f6c7b6f [file] [log] [blame]
Eric Andersenaad1a882001-03-16 22:47:14 +00001/* vi: set sw=4 ts=4: */
2/*
3 * Utility routines.
4 *
Eric Andersenc7bda1c2004-03-15 08:29:22 +00005 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
Eric Andersenaad1a882001-03-16 22:47:14 +00006 *
Denys Vlasenko0ef64bd2010-08-16 20:14:46 +02007 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
Eric Andersenaad1a882001-03-16 22:47:14 +00008 */
9
Eric Andersenaad1a882001-03-16 22:47:14 +000010#include "libbb.h"
11
Eric Andersenc7bda1c2004-03-15 08:29:22 +000012/* Like strncpy but make sure the resulting string is always 0 terminated. */
Denis Vlasenkodefc1ea2008-06-27 02:52:20 +000013char* FAST_FUNC safe_strncpy(char *dst, const char *src, size_t size)
Eric Andersenc7bda1c2004-03-15 08:29:22 +000014{
Denis Vlasenkode59c0f2006-10-05 22:50:22 +000015 if (!size) return dst;
16 dst[--size] = '\0';
17 return strncpy(dst, src, size);
Eric Andersenaad1a882001-03-16 22:47:14 +000018}
Denis Vlasenko0f293b92008-07-22 20:16:55 +000019
20/* Like strcpy but can copy overlapping strings. */
21void FAST_FUNC overlapping_strcpy(char *dst, const char *src)
22{
23 while ((*dst = *src) != '\0') {
24 dst++;
25 src++;
26 }
27}