X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/e07eda1a0324f771bb1ed20ef94f3229005ee46c..70ad1dc8a19d6edd9b97aa81f32cfd65758ae97d:/libdarwin/stdio.c?ds=sidebyside diff --git a/libdarwin/stdio.c b/libdarwin/stdio.c new file mode 100644 index 0000000..49bfd85 --- /dev/null +++ b/libdarwin/stdio.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ +#include "internal.h" + +#pragma mark API +size_t +zsnprintf_np(char *buff, size_t len, const char *fmt, ...) +{ + int np = 0; + va_list ap; + + va_start(ap, fmt); + np = vsnprintf(buff, len, fmt, ap); + va_end(ap); + + if (np < 0) { + np = 0; + } else if ((size_t)np >= len) { + np = (int)len - 1; + } + + return (size_t)np; +}