blob: 4acd9766ba7c896076826e0f538d7fddc55af8f2 [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 *
Bernhard Reutner-Fischerb1629b12006-05-19 19:29:19 +00007 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
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}