Hello community, here is the log from the commit of package octave-forge-struct for openSUSE:Factory checked in at 2019-07-21 11:34:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/octave-forge-struct (Old) and /work/SRC/openSUSE:Factory/.octave-forge-struct.new.4126 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "octave-forge-struct" Sun Jul 21 11:34:47 2019 rev:6 rq:717104 version:1.0.16 Changes: -------- --- /work/SRC/openSUSE:Factory/octave-forge-struct/octave-forge-struct.changes 2019-03-26 15:41:10.364282797 +0100 +++ /work/SRC/openSUSE:Factory/.octave-forge-struct.new.4126/octave-forge-struct.changes 2019-07-21 11:34:48.396772613 +0200 @@ -1,0 +2,9 @@ +Tue Jul 16 11:50:39 UTC 2019 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 1.0.16: + * Build fixes. Builds with Octave 5.1 +- Drop release-current-tip.diff, incorporated into upstream + sources; also drop automake and autoconf BuildRequires which + were only needed because of the patch. + +------------------------------------------------------------------- Old: ---- release-current-tip.diff struct-1.0.15.tar.gz New: ---- struct-1.0.16.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ octave-forge-struct.spec ++++++ --- /var/tmp/diff_new_pack.eJ5480/_old 2019-07-21 11:34:48.932772516 +0200 +++ /var/tmp/diff_new_pack.eJ5480/_new 2019-07-21 11:34:48.932772516 +0200 @@ -18,17 +18,13 @@ %define octpkg struct Name: octave-forge-%{octpkg} -Version: 1.0.15 +Version: 1.0.16 Release: 0 Summary: Additional Structure manipulations functions for Octave License: GPL-3.0-or-later Group: Productivity/Scientific/Math Url: http://octave.sourceforge.net Source0: http://downloads.sourceforge.net/octave/%{octpkg}-%{version}.tar.gz -# PATCH-FIX-UPSTREAM - Fix building with current octave -Patch0: release-current-tip.diff -BuildRequires: autoconf -BuildRequires: automake BuildRequires: gcc-c++ BuildRequires: hdf5-devel BuildRequires: octave-devel @@ -40,10 +36,6 @@ %prep %setup -q -c %{name}-%{version} -pushd %{octpkg}-%{version} -%patch0 -p1 -cd src && ./bootstrap -popd %octave_pkg_src %build ++++++ struct-1.0.15.tar.gz -> struct-1.0.16.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/DESCRIPTION new/struct-1.0.16/DESCRIPTION --- old/struct-1.0.15/DESCRIPTION 2018-05-11 10:42:06.436266669 +0200 +++ new/struct-1.0.16/DESCRIPTION 2019-03-12 16:27:04.334828863 +0100 @@ -1,11 +1,11 @@ Name: struct -Version: 1.0.15 -Date: 2018-05-11 +Version: 1.0.16 +Date: 2019-03-12 Author: Etienne Grossmann <etie...@egdn.net>, Olaf Till <i7t...@t-online.de> Maintainer: Olaf Till <i7t...@t-online.de> Title: Structure Handling. Description: Additional structure manipulation functions. Categories: Structs -Depends: octave (>= 2.9.7) +Depends: octave (>= 4.0.0) Autoload: no License: GPLv3+ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/Makefile new/struct-1.0.16/Makefile --- old/struct-1.0.15/Makefile 2018-05-11 10:42:06.436266669 +0200 +++ new/struct-1.0.16/Makefile 2019-03-12 16:27:04.334828863 +0100 @@ -212,14 +212,10 @@ ## Test package. octave_test_commands = \ -' dirs = {"inst", "src"}; \ - dirs(cellfun (@ (x) ! isdir (x), dirs)) = []; \ - if (isempty (dirs)) error ("no \"inst\" or \"src\" directory"); exit (1); \ - else __run_test_suite__ (dirs, {}); endif ' -## the following works, too, but provides no overall summary output as -## __run_test_suite__ does: -## -## else cellfun (@runtests, horzcat (cellfun (@ (dir) ostrsplit (([~, dirs] = system (sprintf ("find %s -type d", dir))), "\n\r", true), dirs, "UniformOutput", false){:})); endif ' +' args = {"inst", "src"}; \ + args(cellfun (@ (x) isempty (a = stat (x)) || ! S_ISDIR (a.mode), args)) = []; \ + if (isempty (args)) error ("no \"inst\" or \"src\" directory"); exit (1); \ + else cellfun(@runtests, args); endif ' check: $(install_stamp) $(run_in_place) --eval $(octave_test_commands) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/NEWS new/struct-1.0.16/NEWS --- old/struct-1.0.15/NEWS 2018-05-11 10:42:06.436266669 +0200 +++ new/struct-1.0.16/NEWS 2019-03-12 16:27:04.334828863 +0100 @@ -1,3 +1,8 @@ +Summary of important user-visible changes for struct 1.0.16: +------------------------------------------------------------------- + + ** Build fixes. Builds with Octave 5.1. + Summary of important user-visible changes for struct 1.0.15: ------------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/inst/getfields.m new/struct-1.0.16/inst/getfields.m --- old/struct-1.0.15/inst/getfields.m 2018-05-11 10:42:06.436266669 +0200 +++ new/struct-1.0.16/inst/getfields.m 2019-03-12 16:27:04.334828863 +0100 @@ -1,5 +1,5 @@ ## Copyright (C) 2000 Etienne Grossmann <etie...@egdn.net> -## Copyright (C) 2012-2018 Olaf Till <i7t...@t-online.de> +## Copyright (C) 2012-2019 Olaf Till <i7t...@t-online.de> ## ## This program is free software; you can redistribute it and/or modify it under ## the terms of the GNU General Public License as published by the Free Software diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/inst/setfields.m new/struct-1.0.16/inst/setfields.m --- old/struct-1.0.15/inst/setfields.m 2018-05-11 10:42:06.436266669 +0200 +++ new/struct-1.0.16/inst/setfields.m 2019-03-12 16:27:04.334828863 +0100 @@ -1,6 +1,6 @@ ## Copyright (C) 2000 Etienne Grossmann <etie...@egdn.net> ## Copyright (C) 2000 Paul Kienzle <pkien...@users.sf.net> -## Copyright (C) 2012-2016 Olaf Till <i7t...@t-online.de> +## Copyright (C) 2012-2019 Olaf Till <i7t...@t-online.de> ## ## This program is free software; you can redistribute it and/or modify it under ## the terms of the GNU General Public License as published by the Free Software diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/inst/tars.m new/struct-1.0.16/inst/tars.m --- old/struct-1.0.15/inst/tars.m 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/inst/tars.m 2019-03-12 16:27:04.334828863 +0100 @@ -1,5 +1,5 @@ ## Copyright (C) 2000 Etienne Grossmann <etie...@egdn.net> -## Copyright (C) 2012-2016 Olaf Till <i7t...@t-online.de> +## Copyright (C) 2012-2019 Olaf Till <i7t...@t-online.de> ## ## This program is free software; you can redistribute it and/or modify it under ## the terms of the GNU General Public License as published by the Free Software diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/Makefile.in new/struct-1.0.16/src/Makefile.in --- old/struct-1.0.15/src/Makefile.in 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/Makefile.in 2019-03-12 16:27:04.334828863 +0100 @@ -1,6 +1,6 @@ # Makefile for struct package for Octave # -# Copyright (C) 2016 Olaf Till <i7t...@t-online.de> +# Copyright (C) 2016-2019 Olaf Till <i7t...@t-online.de> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,18 +17,15 @@ # Uncomment this for a release. -RELEASE := yes +# RELEASE := yes ifdef RELEASE -# Currently this avoids warnings due to introduction of Octave -# namespaces in Octave-4.1.0+. If the deprecated versions will be -# available long enough, we could get away with just suppressing the -# warnings. -RELEASE_CXXFLAGS = -Wno-deprecated-declarations +# Currently this does nothing. +RELEASE_CXXFLAGS = endif MKOCTFILE ?= @MKOCTFILE@ ifndef CXXFLAGS -CXXFLAGS := $(shell $(MKOCTFILE) -p CXXFLAGS) +CXXFLAGS := $(shell $(MKOCTFILE) -p CXXFLAGS) -Wall endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/aclocal.m4 new/struct-1.0.16/src/aclocal.m4 --- old/struct-1.0.15/src/aclocal.m4 1970-01-01 01:00:00.000000000 +0100 +++ new/struct-1.0.16/src/aclocal.m4 2019-03-12 16:27:05.566853087 +0100 @@ -0,0 +1,15 @@ +# generated automatically by aclocal 1.15 -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_include([m4/octave-forge.m4]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/bootstrap new/struct-1.0.16/src/bootstrap --- old/struct-1.0.15/src/bootstrap 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/bootstrap 2019-03-12 16:27:04.334828863 +0100 @@ -1,3 +1,7 @@ #! /bin/sh +aclocal + autoconf + +autoheader -f diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/cell2fields.cc new/struct-1.0.16/src/cell2fields.cc --- old/struct-1.0.15/src/cell2fields.cc 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/cell2fields.cc 2019-03-12 16:27:04.338828942 +0100 @@ -1,6 +1,6 @@ /* -Copyright (C) 2010-2016 Olaf Till +Copyright (C) 2010-2019 Olaf Till <i7t...@t-online.de> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -56,7 +56,7 @@ return err_retval; } - octave_idx_type dim; + octave_idx_type dim = 0; CHECK_ERROR (dim = args(2).int_value (), err_retval, "%s: third argument must be an integer", fname.c_str ()); @@ -148,3 +148,17 @@ return octave_value (retval); } + +/* +%!test +%! a(1, 1).a = 1; +%! a(2, 1).a = 2; +%! a(1, 1).b = 3; +%! b = a; +%! b(1, 1).b = 5; +%! b(2, 1).b = 6; +%! b(1, 1).c = 7; +%! b(2, 1).c = 8; +%! c = {5, 7; 6, 8}; +%! assert (cell2fields (c, {"b", "c"}, 2, a), b) +*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/config.h.in new/struct-1.0.16/src/config.h.in --- old/struct-1.0.15/src/config.h.in 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/config.h.in 2019-03-12 16:27:06.182865198 +0100 @@ -1,6 +1,72 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +#include "undef-ah-octave.h" + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + /* Define as 1 if liboctinterp is old enough to provide error_state. */ #undef HAVE_OCTAVE_ERROR_STATE -/* Define as 1 if liboctinterp has -'verror (octave_execution_exception&, const char *, va_list)'. */ +/* Define as 1 if liboctinterp has 'verror (octave(_|::)execution_exception&, + const char *, va_list)'. */ #undef HAVE_OCTAVE_VERROR_ARG_EXC + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if the system has the type `_Bool'. */ +#undef HAVE__BOOL + +/* macro for alternative Octave symbols */ +#undef OCTAVE__EXECUTION_EXCEPTION + +/* macro for alternative Octave symbols */ +#undef OCTAVE__VFORMAT + +/* macro for alternative Octave symbols */ +#undef OV_ISSTRUCT + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +#include "oct-alt-includes.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/configure new/struct-1.0.16/src/configure --- old/struct-1.0.15/src/configure 2018-05-11 10:42:06.780273366 +0200 +++ new/struct-1.0.16/src/configure 2019-03-12 16:27:05.894859535 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for struct 1.0.15. +# Generated by GNU Autoconf 2.69 for struct 1.0.16. # # Report bugs to <i7t...@t-online.de>. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='struct' PACKAGE_TARNAME='struct' -PACKAGE_VERSION='1.0.15' -PACKAGE_STRING='struct 1.0.15' +PACKAGE_VERSION='1.0.16' +PACKAGE_STRING='struct 1.0.16' PACKAGE_BUGREPORT='i7t...@t-online.de' PACKAGE_URL='' @@ -1245,7 +1245,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures struct 1.0.15 to adapt to many kinds of systems. +\`configure' configures struct 1.0.16 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1307,7 +1307,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of struct 1.0.15:";; + short | recursive ) echo "Configuration of struct 1.0.16:";; esac cat <<\_ACEOF @@ -1389,7 +1389,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -struct configure 1.0.15 +struct configure 1.0.16 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1738,7 +1738,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by struct $as_me 1.0.15, which was +It was created by struct $as_me 1.0.16, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2090,6 +2090,12 @@ ac_config_headers="$ac_config_headers config.h" +# Avoid warnings for redefining AH-generated preprocessor symbols of +# Octave. + + + + # Checks for programs. # Extract the first word of "mkoctfile", so it can be a program name with args. set dummy mkoctfile; ac_word=$2 @@ -3858,13 +3864,14 @@ } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : - $as_echo "#define HAVE_OCTAVE_ERROR_STATE 1" >>confdefs.h + +$as_echo "#define HAVE_OCTAVE_ERROR_STATE 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -## Presence of 'verror (octave_execution_exception&, const char *, +## Presence of 'verror (octave(_|::)execution_exception&, const char *, ## va_list)' cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -3879,12 +3886,151 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - $as_echo "#define HAVE_OCTAVE_VERROR_ARG_EXC 1" >>confdefs.h +if ac_fn_cxx_try_compile "$LINENO"; then : + +$as_echo "#define HAVE_OCTAVE_VERROR_ARG_EXC 1" >>confdefs.h + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <octave/oct.h> +int +main () +{ +octave::execution_exception e; + va_list args; + verror (e, "test", args); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +$as_echo "#define HAVE_OCTAVE_VERROR_ARG_EXC 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +## Simple symbol alternatives of different Octave versions. + + +echo '/* generated by configure */' > oct-alt-includes.h + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking is_map or isstruct" >&5 +$as_echo_n "checking is_map or isstruct... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <octave/oct.h> + + +int +main () +{ +octave_value ().isstruct (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +$as_echo "#define OV_ISSTRUCT isstruct" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: isstruct" >&5 +$as_echo "isstruct" >&6; } + echo ' +' >> oct-alt-includes.h +else + +$as_echo "#define OV_ISSTRUCT is_map" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: is_map" >&5 +$as_echo " is_map" >&6; } + echo '' >> oct-alt-includes.h + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking octave_vformat or octave::vformat" >&5 +$as_echo_n "checking octave_vformat or octave::vformat... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <octave/oct.h> + + +int +main () +{ +std::ostringstream obuf; + va_list args; + octave::vformat (obuf, "dummy", args); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +$as_echo "#define OCTAVE__VFORMAT octave::vformat" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: octave::vformat" >&5 +$as_echo "octave::vformat" >&6; } + echo ' +' >> oct-alt-includes.h +else + +$as_echo "#define OCTAVE__VFORMAT octave_vformat" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: octave_vformat" >&5 +$as_echo " octave_vformat" >&6; } + echo '' >> oct-alt-includes.h + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking octave_execution_exception or octave::execution_exception" >&5 +$as_echo_n "checking octave_execution_exception or octave::execution_exception... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <octave/oct.h> + + + + +int +main () +{ +octave::execution_exception (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +$as_echo "#define OCTAVE__EXECUTION_EXCEPTION octave::execution_exception" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: octave::execution_exception" >&5 +$as_echo "octave::execution_exception" >&6; } + echo ' + + +' >> oct-alt-includes.h +else + +$as_echo "#define OCTAVE__EXECUTION_EXCEPTION octave_execution_exception" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: octave_execution_exception" >&5 +$as_echo " octave_execution_exception" >&6; } + echo '' >> oct-alt-includes.h + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + + + + LIBS=$TLIBS LDFLAGS=$TLDFLAGS @@ -4406,7 +4552,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by struct $as_me 1.0.15, which was +This file was extended by struct $as_me 1.0.16, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -4468,7 +4614,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -struct config.status 1.0.15 +struct config.status 1.0.16 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/configure.ac new/struct-1.0.16/src/configure.ac --- old/struct-1.0.15/src/configure.ac 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/configure.ac 2019-03-12 16:27:04.338828942 +0100 @@ -1,7 +1,7 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. # -### Copyright (C) 2015-2018 Olaf Till <i7t...@t-online.de> +### Copyright (C) 2015-2019 Olaf Till <i7t...@t-online.de> ### ### This program is free software; you can redistribute it and/or ### modify it under the terms of the GNU General Public License as @@ -18,10 +18,16 @@ ### <http://www.gnu.org/licenses/>. AC_PREREQ([2.62]) -AC_INIT([struct], [1.0.15], [i7t...@t-online.de]) +AC_INIT([struct], [1.0.16], [i7t...@t-online.de]) AC_CONFIG_SRCDIR([cell2fields.cc]) AC_CONFIG_HEADERS([config.h]) +# Avoid warnings for redefining AH-generated preprocessor symbols of +# Octave. +AH_TOP([#include "undef-ah-octave.h"]) + +AC_CONFIG_MACRO_DIRS([m4]) + # Checks for programs. AC_CHECK_PROG(MKOCTFILE, mkoctfile, mkoctfile) if test -z "$MKOCTFILE"; then @@ -72,16 +78,59 @@ [AC_LANG_PROGRAM([[#include <octave/oct.h>] [#include <stdio.h>]], [[printf ("%i", error_state);]])], - [AC_DEFINE([HAVE_OCTAVE_ERROR_STATE], 1)]) + [AC_DEFINE([HAVE_OCTAVE_ERROR_STATE], 1, + [Define as 1 if liboctinterp is old enough to provide error_state.])]) -## Presence of 'verror (octave_execution_exception&, const char *, +## Presence of 'verror (octave(_|::)execution_exception&, const char *, ## va_list)' -AC_LINK_IFELSE( +AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <octave/oct.h>]], [[octave_execution_exception e;] [va_list args;] [verror (e, "test", args);]])], - [AC_DEFINE([HAVE_OCTAVE_VERROR_ARG_EXC], 1)]) + [AC_DEFINE([HAVE_OCTAVE_VERROR_ARG_EXC], 1, + [Define as 1 if liboctinterp has 'verror (octave(_|::)execution_exception&, const char *, va_list)'.])], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <octave/oct.h>]], + [[octave::execution_exception e;] + [va_list args;] + [verror (e, "test", args);]])], + [AC_DEFINE([HAVE_OCTAVE_VERROR_ARG_EXC], 1, + [Define as 1 if liboctinterp has 'verror (octave(_|::)execution_exception&, const char *, va_list)'.])])]) + +## Simple symbol alternatives of different Octave versions. +OF_OCTAVE_LIST_ALT_SYMS([ +[dnl + [is_map], + [isstruct], + [[octave_value ().isstruct ();]], + [OV_ISSTRUCT], + [], + [] +], + +[dnl + [octave_vformat], + [octave::vformat], + [[std::ostringstream obuf;] + [va_list args;] + [octave::vformat (obuf, "dummy", args);]], + [OCTAVE__VFORMAT], + [], + [] +], + +[dnl + [octave_execution_exception], + [octave::execution_exception], + [[octave::execution_exception ();]], + [OCTAVE__EXECUTION_EXCEPTION], + [], + [] +] + +], + [oct-alt-includes.h]) LIBS=$TLIBS LDFLAGS=$TLDFLAGS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/error-helpers.cc new/struct-1.0.16/src/error-helpers.cc --- old/struct-1.0.15/src/error-helpers.cc 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/error-helpers.cc 2019-03-12 16:27:04.338828942 +0100 @@ -1,6 +1,6 @@ /* -Copyright (C) 2016, 2017 Olaf Till <i7t...@t-online.de> +Copyright (C) 2016-2019 Olaf Till <i7t...@t-online.de> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ // call verror #ifdef HAVE_OCTAVE_VERROR_ARG_EXC void -c_verror (octave_execution_exception& e, const char *fmt, ...) +c_verror (OCTAVE__EXECUTION_EXCEPTION& e, const char *fmt, ...) { va_list args; va_start (args, fmt); @@ -33,7 +33,7 @@ } #else void -c_verror (const octave_execution_exception&, const char *fmt, ...) +c_verror (const OCTAVE__EXECUTION_EXCEPTION&, const char *fmt, ...) { va_list args; va_start (args, fmt); @@ -50,7 +50,7 @@ std::ostringstream output_buf; - octave_vformat (output_buf, fmt, args); + OCTAVE__VFORMAT (output_buf, fmt, args); std::string msg = output_buf.str (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/error-helpers.h new/struct-1.0.16/src/error-helpers.h --- old/struct-1.0.15/src/error-helpers.h 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/error-helpers.h 2019-03-12 16:27:04.338828942 +0100 @@ -1,6 +1,6 @@ /* -Copyright (C) 2016, 2017 Olaf Till <i7t...@t-online.de> +Copyright (C) 2016-2019 Olaf Till <i7t...@t-online.de> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,6 +19,8 @@ #include "config.h" +#include <iostream> + // Octaves non-static verror functions: The elder all set error_state, // the newer, present from the time on at which error started to throw // an exception, all throw, too. @@ -26,9 +28,9 @@ // call verror, for _linking_ also against Octave versions who have no // verror() with these arguments #ifdef HAVE_OCTAVE_VERROR_ARG_EXC -void c_verror (octave_execution_exception&, const char *, ...); +void c_verror (OCTAVE__EXECUTION_EXCEPTION&, const char *, ...); #else -void c_verror (const octave_execution_exception&, const char *, ...); +void c_verror (const OCTAVE__EXECUTION_EXCEPTION&, const char *, ...); #endif void _p_error (const char *fmt, ...); @@ -37,7 +39,7 @@ // both if Octave uses exceptions for errors and if it still uses // error_state. In the latter case return 'retval'. #ifdef HAVE_OCTAVE_ERROR_STATE - // can throw octave_execution_exception despite of this + // can throw OCTAVE__EXECUTION_EXCEPTION despite of this #define CHECK_ERROR(code, retval, ...) \ try \ { \ @@ -50,7 +52,7 @@ return retval; \ } \ } \ - catch (octave_execution_exception& e) \ + catch (OCTAVE__EXECUTION_EXCEPTION& e) \ { \ c_verror (e, __VA_ARGS__); \ } @@ -60,7 +62,7 @@ { \ code ; \ } \ - catch (octave_execution_exception& e) \ + catch (OCTAVE__EXECUTION_EXCEPTION& e) \ { \ verror (e, __VA_ARGS__); \ } @@ -70,7 +72,7 @@ // Octave doesn't throw exceptions for errors but still uses // error_state. #ifdef HAVE_OCTAVE_ERROR_STATE - // can throw octave_execution_exception despite of this + // can throw OCTAVE__EXECUTION_EXCEPTION despite of this #define CHECK_ERROR_EXIT1(code, ...) \ try \ { \ @@ -83,7 +85,7 @@ exit (1); \ } \ } \ - catch (octave_execution_exception&) \ + catch (OCTAVE__EXECUTION_EXCEPTION&) \ { \ _p_error (__VA_ARGS__); \ \ @@ -95,7 +97,7 @@ { \ code ; \ } \ - catch (octave_execution_exception&) \ + catch (OCTAVE__EXECUTION_EXCEPTION&) \ { \ _p_error (__VA_ARGS__); \ \ @@ -107,7 +109,7 @@ // Octave uses exceptions for errors and if it still uses // error_state. In the latter case reset error_state to 0. #ifdef HAVE_OCTAVE_ERROR_STATE - // can throw octave_execution_exception despite of this + // can throw OCTAVE__EXECUTION_EXCEPTION despite of this #define SET_ERR(code, err) \ err = false; \ \ @@ -120,7 +122,7 @@ err = true; \ } \ } \ - catch (octave_execution_exception&) \ + catch (OCTAVE__EXECUTION_EXCEPTION&) \ { \ err = true; \ } @@ -132,7 +134,7 @@ { \ code ; \ } \ - catch (octave_execution_exception&) \ + catch (OCTAVE__EXECUTION_EXCEPTION&) \ { \ err = true; \ } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/fieldempty.cc new/struct-1.0.16/src/fieldempty.cc --- old/struct-1.0.15/src/fieldempty.cc 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/fieldempty.cc 2019-03-12 16:27:04.338828942 +0100 @@ -1,6 +1,6 @@ /* -Copyright (C) 2010-2016 Olaf Till +Copyright (C) 2010-2019 Olaf Till <i7t...@t-online.de> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -73,3 +73,7 @@ return octave_value (retval); } + +/* +%!assert (fieldempty (cell2struct ({1, []; {}, 4}, "a", 3), "a"), [false, true; true, false]) +*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/fields2cell.cc new/struct-1.0.16/src/fields2cell.cc --- old/struct-1.0.15/src/fields2cell.cc 2018-05-11 10:42:06.440266748 +0200 +++ new/struct-1.0.16/src/fields2cell.cc 2019-03-12 16:27:04.338828942 +0100 @@ -1,6 +1,6 @@ /* -Copyright (C) 2010-2016 Olaf Till +Copyright (C) 2010-2019 Olaf Till <i7t...@t-online.de> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -95,3 +95,7 @@ return octave_value (retval); } + +/* +%!assert (fields2cell (cell2struct ({1, 2; 3, 4}, {"a", "b"}, 1), {"a"}), {1, 2}) +*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/m4/octave-forge.m4 new/struct-1.0.16/src/m4/octave-forge.m4 --- old/struct-1.0.15/src/m4/octave-forge.m4 1970-01-01 01:00:00.000000000 +0100 +++ new/struct-1.0.16/src/m4/octave-forge.m4 2019-03-12 16:27:04.338828942 +0100 @@ -0,0 +1,93 @@ +# Copyright (C) 2017 Olaf Till <i7t...@t-online.de> +# Modifications to print what is searching for by JohnD +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see <http://www.gnu.org/licenses/>. + +# arguments of OF_OCTAVE_ALT_SYMS (see also description of +# OF_OCTAVE_LIST_ALT_SYMS below): +# +# $1: symbol version 1 +# $2: symbol version 2 +# $3: test for symbol version 2 +# $4: macro name to access alternative symbols +# $5: include directives for symbol version 1 +# $6: include directives for symbol version 2 +# (a list of lists of args 1--6 is $1 of OF_OCTAVE_LIST_ALT_SYMS) +# $7: name of generated include file with alternatives of Octave headers +# (arg7 is $2 of OF_OCTAVE_LIST_ALT_SYMS) +AC_DEFUN([OF_OCTAVE_ALT_SYMS], [ +AC_MSG_CHECKING([$1 or $2]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <octave/oct.h>] + $6], + [$3])], + [AC_DEFINE($4, + [[$2]], + [macro for alternative Octave symbols]) + AC_MSG_RESULT([$2]) + echo '$6' >> $7], + [AC_DEFINE($4, + [[$1]], + [macro for alternative Octave symbols]) + AC_MSG_RESULT([$1]) + echo '$5' >> $7] +) +]) + + +# OF_OCTAVE_LIST_ALT_SYMS is called in the following way: +# +# OF_OCTAVE_LIST_ALT_SYMS([ +# [dnl +# [old_octave_symbol], +# [new_octave_symbol], +# [[compilation test] +# [for new_octave_symbol]], +# [NAME_OF_GENERATED_MACRO____WILL_EXPAND_TO_OLD_OR_NEW_SYMBOL], +# [[include directives] +# [except #include <octave/oct.h>] +# [necessary to compile with old_octave_symbol]], +# [[include directives] +# [except #include <octave/oct.h>] +# [nessary to compile with new_octave_symbol] +# [and to compile the test]] +# ], +# +# ... further such lists as the above +# +# ], +# +# [name-of-header-file-for-alternative-octave-iclude-directives.h]) +# +# +# This file should be put into src/m4/, and the line +# +# AC_CONFIG_MACRO_DIRS([m4]) +# +# should be put into src/configure.ac. The package should use +# autoheader to generate config.h.in (src/bootstrap should contain the +# lines 'aclocal', 'autoconf', and 'autoheader -f'). Package code +# should include config.h and use the generated macros to access the +# alternative symbols of Octave. An example of a call to +# OF_OCTAVE_LIST_ALT_SYMS in src/configure.ac is available together +# with this file. +AC_DEFUN([OF_OCTAVE_LIST_ALT_SYMS], [ + +echo '/* generated by configure */' > $2 + +m4_foreach([it], [$1], [m4_apply([OF_OCTAVE_ALT_SYMS], [it, $2])]) + +AH_BOTTOM([#include "$2"]) + +]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/structcat.cc new/struct-1.0.16/src/structcat.cc --- old/struct-1.0.15/src/structcat.cc 2018-05-11 10:42:06.444266825 +0200 +++ new/struct-1.0.16/src/structcat.cc 2019-03-12 16:27:04.338828942 +0100 @@ -1,6 +1,6 @@ /* -Copyright (C) 2010-2016 Olaf Till +Copyright (C) 2010-2019 Olaf Till <i7t...@t-online.de> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -92,7 +92,7 @@ return err_retval; } - octave_idx_type dim; + octave_idx_type dim = 0; CHECK_ERROR (dim = args(0).int_value () - 1, err_retval, "%s: first argument must be an integer", @@ -132,7 +132,7 @@ for (octave_idx_type i = m1_id; i < n_args; i++) { - if (! args(i).is_map ()) + if (! args(i).OV_ISSTRUCT ()) { error ("%s: some argument not a structure", fname.c_str ()); @@ -159,3 +159,7 @@ return octave_value (retval); } + +/* +%!assert (structcat (1, struct ("a", 1, "b", 2), struct ("a", 3, "c", 4)), cat (1, struct ("a", 1, "b", 2, "c", []), struct ("a", 3, "b", [], "c", 4))) +*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/struct-1.0.15/src/undef-ah-octave.h new/struct-1.0.16/src/undef-ah-octave.h --- old/struct-1.0.15/src/undef-ah-octave.h 1970-01-01 01:00:00.000000000 +0100 +++ new/struct-1.0.16/src/undef-ah-octave.h 2019-03-12 16:27:04.338828942 +0100 @@ -0,0 +1,27 @@ +/* To be included at the top of config.h (by autoheader). Avoid + warnings for redefining AH-generated preprocessor symbols of + Octave. */ + +#ifdef PACKAGE_BUGREPORT +#undef PACKAGE_BUGREPORT +#endif + +#ifdef PACKAGE_NAME +#undef PACKAGE_NAME +#endif + +#ifdef PACKAGE_STRING +#undef PACKAGE_STRING +#endif + +#ifdef PACKAGE_TARNAME +#undef PACKAGE_TARNAME +#endif + +#ifdef PACKAGE_URL +#undef PACKAGE_URL +#endif + +#ifdef PACKAGE_VERSION +#undef PACKAGE_VERSION +#endif