Move to kernel style SPDX license identifiers
[lttng-ust.git] / snprintf / vfprintf.c
index 4fc86bf08d8ded480ae73558f77e8fe8e2792a51..ff7284867c824bab25146500c7d62fca87795870 100644 (file)
@@ -1,34 +1,12 @@
 /*     $OpenBSD: vfprintf.c,v 1.57 2009/10/28 21:15:02 naddy Exp $     */
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
+/*
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (C) 1990 The Regents of the University of California.
  * All rights reserved.
  *
  * This code is derived from software contributed to Berkeley by
  * Chris Torek.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
  */
 
 /*
@@ -51,6 +29,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <wchar.h>
 
 #include "local.h"
 #include "fvwrite.h"
@@ -92,7 +71,7 @@ static int __grow_type_table(unsigned char **typetable, int *tablesize);
  * then reset it so that it can be reused.
  */
 static int
-__sprint(LFILE *fp, struct __suio *uio)
+__sprint(LTTNG_UST_LFILE *fp, struct __lttng_ust_suio *uio)
 {
        int err;
 
@@ -112,10 +91,10 @@ __sprint(LFILE *fp, struct __suio *uio)
  * worries about ungetc buffers and so forth.
  */
 //static int
-//__sbprintf(LFILE *fp, const char *fmt, va_list ap)
+//__sbprintf(LTTNG_UST_LFILE *fp, const char *fmt, va_list ap)
 //{
 //     int ret;
-//     LFILE fake;
+//     LTTNG_UST_LFILE fake;
 //     struct __sfileext fakeext;
 //     unsigned char buf[BUFSIZ];
 //
@@ -189,13 +168,13 @@ static int exponent(char *, int, int);
 #define CHARINT                0x0800          /* 8 bit integer */
 #define MAXINT         0x1000          /* largest integer size (intmax_t) */
 
-int ust_safe_vfprintf(LFILE *fp, const char *fmt0, va_list ap)
+int ust_safe_vfprintf(LTTNG_UST_LFILE *fp, const char *fmt0, va_list ap)
 {
        char *fmt;              /* format string */
        int ch;                 /* character from fmt */
        int n, n2;              /* handy integers (short term usage) */
        char *cp;               /* handy char pointer (short term usage) */
-       struct __siov *iovp;    /* for PRINT macro */
+       struct __lttng_ust_siov *iovp;  /* for PRINT macro */
        int flags;              /* flags as above */
        int ret;                /* return value accumulator */
        int width;              /* width from format (%8d), or 0 */
@@ -239,10 +218,10 @@ int ust_safe_vfprintf(LFILE *fp, const char *fmt0, va_list ap)
        int dprec;              /* a copy of prec if %[diouxX], 0 otherwise */
        int realsz;             /* field size expanded by dprec */
        int size;               /* size of converted field or string */
-       const char *xdigs;      /* digits for %[xX] conversion */
+       const char *xdigs = NULL;       /* digits for %[xX] conversion */
 #define NIOV 8
-       struct __suio uio;      /* output information: summary */
-       struct __siov iov[NIOV];/* ... and individual io vectors */
+       struct __lttng_ust_suio uio;    /* output information: summary */
+       struct __lttng_ust_siov iov[NIOV];/* ... and individual io vectors */
        char buf[BUF];          /* buffer with space for digits of uintmax_t */
        char ox[2];             /* space for 0x; ox[1] is either x, X, or \0 */
        union arg *argtable;    /* args, built due to positional arg */
@@ -399,7 +378,7 @@ int ust_safe_vfprintf(LFILE *fp, const char *fmt0, va_list ap)
         */
        for (;;) {
                cp = fmt;
-               while ((n = mbrtowc(&wc, fmt, MB_CUR_MAX, &ps)) > 0) {
+               while ((n = ust_safe_mbrtowc(&wc, fmt, MB_CUR_MAX, &ps)) > 0) {
                        fmt += n;
                        if (wc == '%') {
                                fmt--;
@@ -934,7 +913,6 @@ number:                     if ((dprec = prec) >= 0)
 done:
        FLUSH();
 error:
-       va_end(orgap);
        if (__sferror(fp))
                ret = -1;
        goto finish;
@@ -944,6 +922,7 @@ overflow:
        ret = -1;
 
 finish:
+       va_end(orgap);
 #ifdef FLOATING_POINT
        if (dtoaresult)
                __freedtoa(dtoaresult);
@@ -1071,7 +1050,7 @@ __find_arguments(const char *fmt0, va_list ap, union arg **argtable,
         */
        for (;;) {
                cp = fmt;
-               while ((n = mbrtowc(&wc, fmt, MB_CUR_MAX, &ps)) > 0) {
+               while ((n = ust_safe_mbrtowc(&wc, fmt, MB_CUR_MAX, &ps)) > 0) {
                        fmt += n;
                        if (wc == '%') {
                                fmt--;
@@ -1350,7 +1329,7 @@ __grow_type_table(unsigned char **typetable, int *tablesize)
        return (0);
 }
 
+
 #ifdef FLOATING_POINT
 static int
 exponent(char *p0, int exp, int fmtch)
This page took 0.025233 seconds and 4 git commands to generate.