svn commit: r274672 - in head/contrib/libxo: . libxo xolint
Marcel Moolenaar
marcel at FreeBSD.org
Tue Nov 18 18:03:42 UTC 2014
Author: marcel
Date: Tue Nov 18 18:03:40 2014
New Revision: 274672
URL: https://svnweb.freebsd.org/changeset/base/274672
Log:
Upgrade libxo to 0.1.6.
Summary of changes:
1. Coverity defect fixes
Obtained from: https://github.com/Juniper/libxo/releases/tag/0.1.6
Modified:
head/contrib/libxo/configure.ac
head/contrib/libxo/libxo/libxo.c
head/contrib/libxo/libxo/xoconfig.h
head/contrib/libxo/libxo/xoversion.h
head/contrib/libxo/xolint/xolint.pl
Modified: head/contrib/libxo/configure.ac
==============================================================================
--- head/contrib/libxo/configure.ac Tue Nov 18 17:37:33 2014 (r274671)
+++ head/contrib/libxo/configure.ac Tue Nov 18 18:03:40 2014 (r274672)
@@ -12,7 +12,7 @@
#
AC_PREREQ(2.2)
-AC_INIT([libxo], [0.1.5], [phil at juniper.net])
+AC_INIT([libxo], [0.1.6], [phil at juniper.net])
AM_INIT_AUTOMAKE([-Wall -Werror foreign -Wno-portability])
# Support silent build rules. Requires at least automake-1.11.
Modified: head/contrib/libxo/libxo/libxo.c
==============================================================================
--- head/contrib/libxo/libxo/libxo.c Tue Nov 18 17:37:33 2014 (r274671)
+++ head/contrib/libxo/libxo/libxo.c Tue Nov 18 18:03:40 2014 (r274672)
@@ -317,7 +317,7 @@ xo_init_handle (xo_handle_t *xop)
cp = getenv("LC_ALL");
if (cp == NULL)
cp = "UTF-8"; /* Optimistic? */
- cp = setlocale(LC_CTYPE, cp);
+ (void) setlocale(LC_CTYPE, cp);
}
/*
@@ -607,8 +607,10 @@ xo_vsnprintf (xo_handle_t *xop, xo_buffe
rc = vsnprintf(xbp->xb_curp, left, fmt, va_local);
if (rc > xbp->xb_size) {
- if (!xo_buf_has_room(xbp, rc))
+ if (!xo_buf_has_room(xbp, rc)) {
+ va_end(va_local);
return -1;
+ }
/*
* After we call vsnprintf(), the stage of vap is not defined.
@@ -648,8 +650,10 @@ xo_printf_v (xo_handle_t *xop, const cha
rc = vsnprintf(xbp->xb_curp, left, fmt, va_local);
if (rc > xbp->xb_size) {
- if (!xo_buf_has_room(xbp, rc))
+ if (!xo_buf_has_room(xbp, rc)) {
+ va_end(va_local);
return -1;
+ }
va_end(va_local); /* Reset vap to the start */
va_copy(va_local, vap);
@@ -974,8 +978,10 @@ xo_warn_hcv (xo_handle_t *xop, int code,
int left = xbp->xb_size - (xbp->xb_curp - xbp->xb_bufp);
int rc = vsnprintf(xbp->xb_curp, left, newfmt, vap);
if (rc > xbp->xb_size) {
- if (!xo_buf_has_room(xbp, rc))
+ if (!xo_buf_has_room(xbp, rc)) {
+ va_end(va_local);
return;
+ }
va_end(vap); /* Reset vap to the start */
va_copy(vap, va_local);
@@ -1118,8 +1124,10 @@ xo_message_hcv (xo_handle_t *xop, int co
int left = xbp->xb_size - (xbp->xb_curp - xbp->xb_bufp);
rc = vsnprintf(xbp->xb_curp, left, fmt, vap);
if (rc > xbp->xb_size) {
- if (!xo_buf_has_room(xbp, rc))
+ if (!xo_buf_has_room(xbp, rc)) {
+ va_end(va_local);
return;
+ }
va_end(vap); /* Reset vap to the start */
va_copy(vap, va_local);
@@ -1154,14 +1162,15 @@ xo_message_hcv (xo_handle_t *xop, int co
va_copy(va_local, vap);
- rc = vsnprintf(buf, bufsiz, fmt, va_local);
+ rc = vsnprintf(bp, bufsiz, fmt, va_local);
if (rc > bufsiz) {
bufsiz = rc + BUFSIZ;
bp = alloca(bufsiz);
va_end(va_local);
va_copy(va_local, vap);
- rc = vsnprintf(buf, bufsiz, fmt, va_local);
+ rc = vsnprintf(bp, bufsiz, fmt, va_local);
}
+ va_end(va_local);
cp = bp + rc;
if (need_nl) {
@@ -1302,9 +1311,9 @@ xo_create_to_file (FILE *fp, xo_style_t
* @xop XO handle to alter (or NULL for default handle)
*/
void
-xo_destroy (xo_handle_t *xop)
+xo_destroy (xo_handle_t *xop_arg)
{
- xop = xo_default(xop);
+ xo_handle_t *xop = xo_default(xop_arg);
if (xop->xo_close && (xop->xo_flags & XOF_CLOSE_FP))
xop->xo_close(xop->xo_opaque);
@@ -1315,7 +1324,7 @@ xo_destroy (xo_handle_t *xop)
xo_buf_cleanup(&xop->xo_predicate);
xo_buf_cleanup(&xop->xo_attrs);
- if (xop == &xo_default_handle) {
+ if (xop_arg == NULL) {
bzero(&xo_default_handle, sizeof(&xo_default_handle));
xo_default_inited = 0;
} else
@@ -1743,7 +1752,7 @@ xo_format_string_direct (xo_handle_t *xo
int need_enc, int have_enc)
{
int cols = 0;
- wchar_t wc;
+ wchar_t wc = 0;
int ilen, olen, width;
int attr = (flags & XFF_ATTR);
const char *sp;
Modified: head/contrib/libxo/libxo/xoconfig.h
==============================================================================
--- head/contrib/libxo/libxo/xoconfig.h Tue Nov 18 17:37:33 2014 (r274671)
+++ head/contrib/libxo/libxo/xoconfig.h Tue Nov 18 18:03:40 2014 (r274672)
@@ -158,7 +158,7 @@
#define PACKAGE_NAME "libxo"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libxo 0.1.5"
+#define PACKAGE_STRING "libxo 0.1.6"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libxo"
@@ -167,7 +167,7 @@
#define PACKAGE_URL ""
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.1.5"
+#define PACKAGE_VERSION "0.1.6"
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
@@ -181,7 +181,7 @@
#define STDC_HEADERS 1
/* Version number of package */
-#define VERSION "0.1.5"
+#define VERSION "0.1.6"
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
Modified: head/contrib/libxo/libxo/xoversion.h
==============================================================================
--- head/contrib/libxo/libxo/xoversion.h Tue Nov 18 17:37:33 2014 (r274671)
+++ head/contrib/libxo/libxo/xoversion.h Tue Nov 18 18:03:40 2014 (r274672)
@@ -18,17 +18,17 @@
/**
* The version string
*/
-#define LIBXO_VERSION "0.1.5"
+#define LIBXO_VERSION "0.1.6"
/**
* The version number
*/
-#define LIBXO_VERSION_NUMBER 1004
+#define LIBXO_VERSION_NUMBER 1006
/**
* The version number as a string
*/
-#define LIBXO_VERSION_STRING "1004"
+#define LIBXO_VERSION_STRING "1006"
/**
* The version number extra info as a string
Modified: head/contrib/libxo/xolint/xolint.pl
==============================================================================
--- head/contrib/libxo/xolint/xolint.pl Tue Nov 18 17:37:33 2014 (r274671)
+++ head/contrib/libxo/xolint/xolint.pl Tue Nov 18 18:03:40 2014 (r274672)
@@ -28,6 +28,19 @@ sub main {
extract_samples() if /^-X/;
}
+ if ($#ARGV < 0) {
+ print STDERR "xolint [options] files ...\n";
+ print STDERR " -c invoke 'cpp' on input\n";
+ print STDERR " -C flags Pass flags to cpp\n";
+ print STDERR " -d Show debug output\n";
+ print STDERR " -D Extract xolint documentation\n";
+ print STDERR " -I Print xo_info_t data\n";
+ print STDERR " -p Print input data on errors\n";
+ print STDERR " -V Print vocabulary (list of tags)\n";
+ print STDERR " -X Print examples of invalid use\n";
+ exit(1);
+ }
+
for $file (@ARGV) {
parse_file($file);
}
@@ -269,9 +282,9 @@ sub check_format {
$last = $prev;
next;
}
+ $prev = $ch;
}
- $prev = $ch;
$build[$phase] .= $ch;
}
@@ -346,18 +359,6 @@ sub check_field {
info("potential missing slash after N, L, or T with format")
if $field[1] =~ /%/;
- #@ Format cannot be given when content is present (roles: DNLT)
- #@ xo_emit("{T:Max/%6.6s}", "Max");
- #@ Fields with the D, N, L, or T roles can't have both
- #@ static literal content ("{T:Title}") and a
- #@ format ("{T:/%s}").
- #@ This error will also occur when the content has a backslash
- #@ in it, like "{N:Type of I/O}"; backslashes should be escaped,
- #@ like "{N:Type of I\\/O}". Note the double backslash, one for
- #@ handling 'C' strings, and one for libxo.
- error("format cannot be given when content is present")
- if $field[1] && $field[2];
-
#@ An encoding format cannot be given (roles: DNLT)
#@ xo_emit("{T:Max//%s}", "Max");
#@ Fields with the D, N, L, and T roles are not emitted in
@@ -367,6 +368,21 @@ sub check_field {
if $field[3];
}
+ # Field is a decoration, label, or title
+ if ($field[0] =~ /DLN/) {
+ #@ Format cannot be given when content is present (roles: DLN)
+ #@ xo_emit("{N:Max/%6.6s}", "Max");
+ #@ Fields with the D, L, or N roles can't have both
+ #@ static literal content ("{L:Label}") and a
+ #@ format ("{L:/%s}").
+ #@ This error will also occur when the content has a backslash
+ #@ in it, like "{N:Type of I/O}"; backslashes should be escaped,
+ #@ like "{N:Type of I\\/O}". Note the double backslash, one for
+ #@ handling 'C' strings, and one for libxo.
+ error("format cannot be given when content is present")
+ if $field[1] && $field[2];
+ }
+
# A value field
if (length($field[0]) == 0 || $field[0] =~ /V/) {
@@ -527,7 +543,7 @@ sub check_field_format {
#@ for non-strings. This error may occur from a typo,
#@ like "{:tag/%6..6d}" where only one period should be used.
error("max width only valid for strings")
- if $#chunks >= 2 && $fc =~ /[sS]/;
+ if $#chunks >= 2 && $fc !~ /[sS]/;
}
sub error {
More information about the svn-src-head
mailing list