X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_strncpy.c;h=505379eb4754206a2ae2d27ed131b9301fcd7bd1;hb=d292118ff0143ef2ae3848ac5f1353d95636c4a1;hp=5baf5881e528238d515ddaa8162c57551678b4cb;hpb=ccaa1364f24ea0207b04e628c45f4ca2ff3e5083;p=fw%2Fsdcc diff --git a/device/lib/_strncpy.c b/device/lib/_strncpy.c index 5baf5881..505379eb 100644 --- a/device/lib/_strncpy.c +++ b/device/lib/_strncpy.c @@ -7,31 +7,37 @@ under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Library General Public License along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - + In other words, you are welcome to use, share and improve this program. You are forbidden to forbid anyone else to use, share and improve - what you give them. Help stamp out software-hoarding! + what you give them. Help stamp out software-hoarding! -------------------------------------------------------------------------*/ -#include "string.h" -#define NULL (void *)0 +#include "string.h" -char _generic *strncpy ( - char _generic *d , - char _generic *s , - int n ) +char *strncpy ( + char * d, + char * s, + size_t n ) { - register char _generic *d1 = d; + register char * d1 = d; - while ( n-- ) + while ( n && *s ) + { + n-- ; *d++ = *s++ ; + } + while ( n-- ) + { + *d++ = '\0' ; + } return d1; }